启动Oracle时常见疑难问题分析
添加时间: 2008-4-27 21:16:07 作者: Oracle指导 阅读次数:64 来源: http://www.d9soft.com
实例和数据库的启动与关闭是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:Oracleadminoradbpfile”目录下,然后修改init.ora文件,使无法使用的控制文件不在control_files参数中定义。如“C:Oracleoradataoradbcontrol03.ctl”,可在init.ora中将其删除掉,或者更换成其它可启动的控制文件。
修改前:
control_files=(“C:Oracleoradataoradbcontrol01.ctl”.
C:Oracleoradataoradbcontrol02.ctl“,”“C:Oracleoradataoradbcontrol03.ctl”)
修改后:
control_files=(“C:Oracleoradataoradb
control01.ctl”,“C:Oracleoradataoradbcontrol02.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:orantNET80adminlistener.ora。
(4)检查监听器日志文件:c:orantNET80loglistener.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分配存贮空间;
◆ 启动后台进程;
启动Oracle时常见疑难问题分析(1) 第 [1] [2] [3] 下一页
上一篇文章: 考试大学习教室[oracle问题集(五) 下一篇文章: 新手必须了解的oracle入门知识
相关文章:

