日期:2014-05-16  浏览次数:20570 次

服务器突然断电造成oracle实例不能正常启动报ora-01172 ora-01151的解决办法
昨天的突然停电造成公司3号服务器上的kyy实例无法启动,而xty实例可正常启动。

kyy实例在启动过程中停留在数据库已装载的状态,却不能打开。用sys用户可以登录到oracle EMC中。但只能看EMC中的配置,方案、存储、安全都不能查看。其它用户不能登录数据库(报数据库正在初始化或shutdown中)。

查看D:\oracle\ora92\database\OraDim.Log文件,可看到如下错误:

Tue Jan 22 11:35:32 2008
ORA-01172: ??1???????1452614????9??
ORA-01151: ?????????????????????
  大意是数据文件被损坏了,需要恢复
----------------------------
我的解决办法:
在数据库服务器上,用以下过程恢复数据文件
c:>sqlplus /nolog
SQL> connect sys/sys@kyy as SYSDBA
已连接
SQL>  startup mount
ORA-01081: 无法启动已在运行的 ORACLE --- 请首先关闭
SQL> alter database open read only;
alter database open read only
*
ERROR 位于第 1 行:
ORA-16005: 数据库需要恢复


SQL> recover database
完成介质恢复。
SQL> shutdown immediate
ORA-01109: 数据库未打开


已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  730931140 bytes
Fixed Size                   454596 bytes
Variable Size             411041792 bytes
Database Buffers          318767104 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>

----------------------------------------------
之后,kyy实例终于可以正常启动了。