动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.用VC开发基于ORACLE数据库方法.
.解析Oracle数据库内在索引和参数.
.深入讲解游标类型为什么会产生数.
.Oracle rac安装过程详解(十).
.如何只列子目录?.
.如何用简易方法查找Oracle版本信.
.linux显卡的配置(2).
.详细介绍ORACLE sqlplus命令.
.Oracle9i表连接.
.Oracle 10G 新特性简介.
..NET调用Oracle存储过程,使用数.
.属性类的简单案例.
.Oracle 8i迁移到10g出现的问题及.
.Oracle Database FAQ.
.Oracle 数据字典.
.Use Orastress! to test your da.
.修改默认的undo_retention参数设.
.Oracle数据库技术(11).
.Oracle数据库构造给据邮件跟踪查.
.两小时搞定RHAS 3.0上的Oracle 9.

启动Oracle常见疑难问题分析

发表日期:2008-2-9 |



   启动Oracle常见疑难问题分析  (2003-10-1) 

本文出自《网管员世界》2003年第10期“故障诊断”栏目

实例和数据库的启动与关闭是DBA的重要职责之一。只有打开数据库,其他用户才能对数据库中的数据进行操作。一旦数据库关闭,便不能对其操作。对于DBA们来说,关闭和重新启动数据库以便优化、调整应用程序的运行是经常碰到的事情。假如用户已经进入了数据库,使用SHUTDOWN IMMEDIATE 或SHUTDOWN ABORT命令来执行关闭数据库,则用户将失去连接,直到数据库重新启动。经常关闭和启动会对数据库性能造成一定的影响,当然也会影响到用户对数据库的使用。本文从治理数据库的角度来分析在Oracle启动和关闭时经常碰到的问题,并总结了在启动和关闭Oracle数据库中应该注重的问题和事项。

启动常见问题

(一)在一个控制文件被损坏情况下,如何正常启动?
系统环境
操作系统:windows 2000 Advanced Server
数据库: Oracle 8i R2 (8.1.6) for NT 企业版
安装路径:C:\ORACLE
错误现象
因硬盘有坏道,一个控制文件损坏了,或人工误删一个控制文件,控制面板的Oracle相关服务可以启动成功,但用SQL*Plus无法连接。错误提示为“ORA-01034: ORACLE not available”。
解决方法
(1)在开始菜单中直接运行命令,进入“svrmgrl>”提示符模式。
(2)在“svrmgrl>”提示符下键入“connect internal”命令。
(3)在“svrmgrl>”提示符下键入“shutdown abort”命令关闭数据库。
(4)找到init.ora文件,它一般位于“C:\Oracle\admin\oradb\pfile”目录下,然后修改init.ora文件,使无法使用的控制文件不在control_files参数中定义。如“C:\Oracle\oradata\oradb\control03.ctl”,可在init.ora中将其删除掉,或者更换成其它可启动的控制文件。
修改前:
control_files=(“C:\Oracle\oradata\oradb\control01.ctl”.C:\Oracle\oradata\oradb\control02.ctl“,”“C:\Oracle\oradata\oradb\control03.ctl”)
修改后:
control_files=(“C:\Oracle\oradata\oradb\
control01.ctl”,“C:\Oracle\oradata\oradb\control02.ctl”)
(5)重新启动数据库实例,即可解决问题。
注重:在控制文件中最少要有两个控制文件。

(二)联机热备份失败后,如何打开数据库?
系统环境:
操作系统:Windows 2000 Advanced Server
数据库: Oracle 8i R2 (8.1.6) for NT 企业版
安装路径:C:\ORACLE
错误现象
进行联机热备份时,服务器发生故障(如掉电等)。重新启动服务器后,再启动数据库时,无法打开数据库,Oracle要求进行介质恢复,因为表空间还处在热备份状态。
解决方法
(1)先将数据库设置为归档模式
C:\>svrmgrl
svrmgrl>connect internal
svrmgrl>alter tablespace 表空间名 begin backup;
说明:这是在表空间进行热备份模式没结束时,就强行关闭数据库所造成的错误。
svrmgrl>shutdown abort
svrmgrl>startup mount
(2)将此表空间的数据文件在没打开数据库时,设置成“end backup”模式
svrmgrl>alter database datafile '表空间的数据文件名' end backup;
(3)执行表空间介质恢复
svrmgrl>recover tablespace 表空间名;
svrmgrl>alter database open;

(三)Oracle启动时,监听器不启动或打开出错? 
错误现象:
ORACLE启动时,监听器不启动或打开出错;服务器端:用username/passWord登录正常,但用username/password@alias登录不成功;客户端:用username/password@alias登录不成功
解决方法
(1)假如是因为修改了NT的机器名,则把listener.ora文件中的host参数全部改为新的NT机器名,重新启动OracleTNSListener80服务即可。

例如:
LISTENER =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = NT_Name)(Port = 1521))
(ADDRESS=(PROTOCOL=TCP)(Host=NT_Name)(Port= 1526))
  )
(2)使用监听器实用程序:LSNRCTL80.exe。
(3)检查监听器参数文件:c:\orant\NET80\admin\
listener.ora。
(4)检查监听器日志文件:c:\orant\NET80\log\
listener.log。
(5)Tnsnames.ora文件配置错误,重新配置。
(6)检查client端 Tnsnames.ora。

(四)Oracle Enterprise Manager(OEM)工具中如何以SYSOPER、SYSDBA方式登录?
软件环境:
Windows NT4.0+ORACLE 8.0.4
ORACLE安装路径为:C:\ORANT
错误现象
在以Oracle Enterprise Manager(OEM)工具登录数据库时,不论是sys用户、system用户,还是其他用户,在Connect As栏中以sysdba或sysoper角色登录均遭拒绝,报错:Ora-01017:invalid username/password;logon denied,但以normal登录成功。
出错分析
在Oracle数据库中有三种连接方式:
(1)normal正常方式,基本连接方式,级别较低。
(2)sysopr系统方式,系统连接方式,高一级。
(3)sysdba治理员方式,是数据库治理员连接方式,级别最高。
Oracle8中,sys、system已经只是具有特权的普通用户,而internal才是DBA。所以在DBA进行治理数据时,只能使用具有特权的“internal”连接方式才不会出错。
解决方法
以internal/oracle方式连接即可。 

Oracle数据库的启动

启动实例
启动实例,以使Oracle Server完成如下任务:
◆ 读参数文件init.ora文件,以决定如何初始化该实例;
◆ 根据参数文件中提供的SGA大小,来为SGA分配存贮空间;
◆ 启动后台进程;
◆ 打开后台跟踪文件。
实例启动分正常启动和约束启动。所谓约束启动,就是当数据库打开后,只能使具有RESTRICTED SESSION系统特权的用户与其相连接。而正常启动则答应所有用户与其相连接。
实例启动有如下三种方式:
◆ 只启动实例;
◆ 启动实例并安装数据库,但不打开数据库;
◆ 启动实例,并安装和打开数据库。

数据库安装
数据库安装就是将指定的数据库与已启动的实例相联系。被安装的数据库在打开之前保持关闭,此时只有DBA能存取。在安装数据库时,实例查找参数文件中的CONTROL-Files参数所指定的控制文件,并打开它,从中取得数据库的数据文件名和日志文件名,然后确认这些文件是否存在。假如希望多个实例并发地安装同一个数据库,则DBA可选择并行方式安装该数据库。假如希望只有一个实例可安装该数据库,则选择专用方式安装该数据库。假如ORACLE版本不支持并行服务器选项,则只能按专用方式安装数据库。当选择并行方式安装数据库时,并发安装同一个数据库的实例个数受预定义最大值的限制,而且在参数文件中必须有命名的私用回滚段或可用的公用回滚段。

打开数据库
在安装的数据库被打开之前,所有合法的用户(除DBA)都不能对该数据库进行连接和存取;只有被打开以后才能进行连接和存取。在打开数据库的同时,实例也打开在线的数据文件和在线日志文件。假如数据库是由于实例的异常而中止或电源故障而被关闭时,则下次打开它时会自动执行实例恢复。在数据库被打开时,实例试图获取一个或多个回滚段。在分布事务中,若当—个数据库因电源故障等忽然被关闭,此时若有一个或多个分布式事务还没提交或回滚,则在该数据库被重新打开时,继续完成实例恢复,RECO后台进程将自动、立即和一致地解决尚未提交或回滚的任何分布事务。

常用打开数据库和实例命令方式
(1)startup nomount
非安装启动,这种启动方式下可执行:重建控制文件、重建数据库和启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
(2)startup mount dbname
安装启动,这种启动方式下可执行:数据库日志归档、数据库恢复和重新命名一些数据库文件。
(3)startup open dbname
先执行“nomount”,然后执行“mount”,再打开包括Redolog文件在内的所有数据库文件,这种方式下可访问数据库中的数据。
(4)startup等于以下三个命令
startup nomount
alter database mount
alter database open
(5)startup restrict
约束方式启动,这种方式能够启动数据库,但只答应具有一定特权的用户访问,非特权用户访问时,会出现以下提示:
ERROR:
ORA-01035: Oracle 只答应具有RESTRICTED SESSION权限的用户使用。
(6)startup force
强制启动方式,当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令。
(7)startup pfile=参数文件名
带初始化参数文件的启动方式,先读取参数文件,再按参数文件中的设置启动数据库。例:startup pfile=E:\Oracle\admin\oradb\pfile\init.ora
(8)startup exclusive 
    SQL>conect internal
作为internal连接时,connect命令不需要口令,因为其授权是由操作系统隐式提供的。
Internal连接等价于sys连接,它们都是拥有Oracle数据字典的用户。

应用
在Unix下启动Oracle8i,其整个过程步骤如下:
(1)telnet 主机IP或者是主机名
user:***** password:*****
(2)lsnrctl start
(3)svrmgrl
(4)svrmgrl>connect internal
(5)svrmgrl>startup

实例和数据库的关闭

关闭实例的步骤
关闭实例后,SGA从内存撤消,后台进程被停止。关闭实例的步骤如下:
(1)启动SQL*DBA
(2)作为INTERNAL用户与数据库相连接
(3)关闭实例
◆ 关闭数据库
◆ 卸下数据库
◆ 关闭实例

关闭数据库
数据库关闭时,首先将SGA中的所有数据库数据和日志项数据写入相应的数据文件和日志文件。然后关闭所有联机数据文件和日志文件。在数据库关闭后和卸下之前,控制文件仍保持打开,此时假如需要打开时,还可重新打开数据库。

卸下数据库
卸下数据库就是切断实例与数据库的联系,关闭数据库控制文件,使内存仅保留实例。

常用关闭数据库和实例命令
(1)shutdown normal(正常关闭数据库)
在正常关闭情况下,Oracle在关闭数据库前,等待所有与之相连接的用户正常结束其对话。于是在下次启动数据库时,就不需要恢复实例。
(2)shutdown immediate(立即方式关闭数据库)
当选择Immediate关闭方式时,即实现直接关闭。在SVRMGRL中执行shutdown immediate,数据库并不立即关闭, 而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。
该关闭方式主要用于下列情况:
①马上停电;
②Oracle正在非正规的运行数据库或一个数据库应用。
该方式关闭数据库过程如下:
①Oracle结束当前正在处理的SQL语句;
②回滚未提交的事务;
③Oracle不等待与之相连接的用户退出连接,就直接中断他们,使用这种关闭方式,下次启动数据库时,Oracle应自动执行实例恢复。
(3)shutdown abort(撤消实例方式关闭数据库)
这是一种最快的关闭方式,它主要用于下列情况:
①一分钟后就要停电;
②Oracle正在非正规的运行数据库或一个数据库应用,并且其它的关闭方式失效;
③启动一个数据库实例时碰到问题。
该方式关闭数据库的过程如下:
①Oracle不等待调用完成,直接中断正在处理的SQL语句;
②回滚未提交事物。
使用这种关闭方式,下次启动数据库时,Oracle应自动执行实例恢复。启动和关闭实例和数据库的操作需要connect internal系统特权,安装和打开数据库的操作还要有alter database系统特权。直接关闭数据库,正在访问数据库的会话会被忽然终止,假如数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间。

应用
在Unix中关闭Oracle8i,其具体步骤如下:
svrmgrl>connect internal
svrmgrl>shutdown
svrmgrl>exit

在关闭Oracle数据库时需注重问题

不要提前关闭SQL*NET。
当需要SHUTDOWN数据库,不要提前关闭SQL*NET,直到确认关闭了SERVER上的所有数据库后再关闭SQL*NET。假如关闭了SQL*NET,用户将失去和数据库的会话。

存档或删除旧的trace files和logs
当启动Oracle的一个实例时,Oracle把关于该实例的诊断信息写入指定的trace和log文件。每个后台进程都增加一个TRACE文件,它被存储在指定的目录,该路径由INIT.ORA或CONFIG.ORA文件中的BACKGROUND_DUMP_DEST参数指定。用户在数据库中碰到一个内部错误时也增加用户的TRACE文件,该文件的位置由INIT.ORA或CONFIG.ORA文件中的USER_DUMP_DEST参数指定。TRACE文件的个数和名称形式由使用数据库的操作系统决定。
在每次启动和关闭数据库时,Oracle不会自动删除TRACE文件。假如长期不删除这些无用文件,它们将占据数据库中大量的自由空间。数据库治理员应该很好的治理这些文件,可以采取删除或者存档的策略来避免无用文件占用大量自由空间。
SQL*NET也产生LOG文件,一般叫LISTENER.LOG,LISTENER.LOG文件大小也随着启动的次数不断的变大,所以通过妥善治理它也能有效的利用空间。查看该文件可以键入命令:
lsnrctl status
在Oracle8i中使用该命令,其显示结果为:
o200 5% lsnrctl status
LSNRCTL for SGI IRIX64: Version 8.1.6.0.0 - ProdUCtion on 09-APR-2003 09:16:26
(c) Copyright 1998, 1999, Oracle Corporation.  All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY))
STATUS of the LISTENER
Alias                     LISTENER
Version                   TNSLSNR for SGI IRIX64: Version 8.1.6.0.0 - Production
Start Date                19-MAR-2003 14:43:53
Uptime                    20 days 18 hr. 4607182418800017439 min. 56 sec
Trace Level               off
Security                  OFF
SNMP                      OFF
Listener Log File         /data/ora8i/OraHome/network/log/listener.log
The listener supports no services
The command completed successfully

改名ALERT LOG文件
ALERT LOG文件也是用来记录INSTANCE的诊断信息的。
它的存放目录也通过BACKGROUND_DUMP_DEST参数来指定。一般情况下ALERT LOG文件命名方式为:ALERT_ .LOG。ALTER LOG文件包括了一些数据库主要事件信息,例如:startup和shutdown及redolog的使用、表空间的改变、文件的改变、内部错误信息和数据库备份状态的改变等。
ALTER LOG在后续数据库的使用中,其增长速度非常快。假如一段时间后,再查看它时,其文件已经变得非常大,所以查看它是非常的费劲。一般来讲,为了既能留下这些有用的信息,同时不至于浪费很大的空间,最好的治理办法就是给它改名。可以在任何时候更改ALTER LOG文件名,建议在SHUTDOWN/STARTUP数据库时更改名字。
上一篇:RHAS 3.0上的Oracle 9i的安装 人气:674
下一篇:some error of the Oracle connection TNS-03505 OR TNS-12541(原创) 人气:970
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-12-2 OpenPNE中文 v2.12.5 for win 中
2008-12-2 谷秋精品课程软件课程版 v2.3
2008-12-2 晴天电影系统(带一键迅雷/自定义
2008-12-2 QQip138闪字程序
2008-12-2 SmartWeb企业智能建站系统 v1.0.2
2008-12-2 梦想不死个人主页 v2009
2008-12-2 开良ASP小偷程序生成器 v1.1
2008-12-2 toolxp.cnalexa世界排名查询 php
2008-12-2 腾讯留言板 v1.3
2008-11-29 Tencent Traveler 4.4
2008-11-29 龙卷风网络收音机 v3.0.0.0
2008-11-29 Intel Chipset Software Install
2008-11-29 TweakVI 1.0 Build 1100
2008-11-29 Opera 9.62 Build 10469
2008-11-29 MPlayer WW编译版 SVN-r28044(20
2008-11-29 NetTools网络工具v1.0.0破解版
2008-11-29 3DGallery三维体验1.1破解版
2008-11-29 SecretBook保密本v1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | OPEN参数生成器 | 弹出式窗口代码产生器 | 密码登录生成器 | 在线按钮生成器 | Meta标签生成器 | 多色彩特效字代码生成器 | 网页代码调试器 | 在线FTP登陆 | Flash取色器 | 配色代码对照表 | 配色辞典 | CSS生成器 | 广告代码 | 框架网页代码生成器 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | 在线调色板 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 元素周期表 | 健康查询 | 世界时间 | 万年历 | 二十四节气 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2009 www.knowsky.com All rights reserved | 沪ICP备05001343号