今天一个同事让帮忙看下他的一个测试库无法启动,简单询问了下当时的情况,是因为电脑蓝屏重启后数据库通过pl/sql无法连接。
通过查看alert日志发现报了一个如下错误:
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\udump\orcl_ora_4824.trc:
ORA-01172: 线程 1 的恢复停止在块 18398 (在文件 6 中)
ORA-01151: 如果需要, 请使用介质恢复以恢复块和还原备份
通过sqlplus连上数据库后查看当前数据库状态为mounted,执行recover datafile 6;后alter database open无法打开,并报了一个ora-600错误:
Wed Aug 17 14:49:38 2011
Aborting crash recovery due to error 600
Wed Aug 17 14:49:38 2011
Errors in file d:\oracle\product\10.2.0\db_1\admin\orcl\udump\orcl_ora_4824.trc:
ORA-00600: 内部错误代码, 参数: [kcratr1_lastbwr], [], [], [], [], [], [], []
通过查看support发现引起此错误的原因是当时oracle无法执行instance recover这个操作,oracle建议手动执行recover databse后打开数据库,可以参考ORA-00600:[Kcratr1_lastbwr] During Database Startup after a Crash [ID 393984.1]文章。
Solution
Mount the database and issue a recover statement
执行recover database;后数据库成功打开。SQL> startup mount;
SQL> recover database;
SQL> alter database open;