因断电导致Oracle数据库无法启动报ORA-10997,ORA-09968故障修复
故障描述:
SQL> startup
ORA-10997: another startup/shutdown operation of this instance inprogress
ORA-09968: unable to lock file
Linux-x86_64 Error: 11: Resource temporarily unavailable
故障定位:
到这里我们就要想到Oracle启动的原理,在Oracle启动/停止进程发起的时候,会在$ORACLE_HOME/dbs目录下生成一个lkinst’SID’的临时文件进行lock,在启动/停止完成的时候会unlock然后把此文件删掉。
分析lkinst’SID’文件
从图中我们就可以看到了此实例链接文件,而这就是原因所在,服务器在异常关闭的时候数据库在关闭进程还没来得及关闭实例完成,此时服务器已经关闭了,导致此文件没有被删除,当下次启动的时候就会无法锁定实例,因而提示上方的错误。
故障处理:
删除或者移走lkinstfordb文件即可
[oracle@aix173 /oracle/app/oracle/product/11.2.0.4/dbhome_1/dbs]$rm -f lkinstfordb
再次启动数据库,发现已经正常启动
SQL> startup
ORACLE instance started.
Total System Global Area 1720328192 bytes
Fixed Size 2247072 bytes
Variable Size 1056966240 bytes
Database Buffers 654311424 bytes
Redo Buffers 6803456 bytes
Database mounted.
Database opened.
SQL>