这几天在做虚拟化的迁移,一些备库都是在线迁移,虚拟机很多都是直接断电重启,导致有些机器上面的oracle数据库在崩溃后做前滚,回滚出现一些问题。
这不,今天又遇到一个,数据库无法open,报ORA-00600:[Kcratr1_lastbwr]
关于这个问题,metalink上有详细的介绍,doc id 393984.1
CHANGES
There was a disk problem that caused the database to crash.
CAUSE
Oracle is unable to perform instance recover but it works when is invoked manually.
SOLUTION
Mount the database and issue a recover statement
SQL> startup mount;
SQL> recover database;
SQL> alter database open;
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-12801: error signaled in parallel query server P002
ORA-10562: Error occurred while applying redo to data block (file# 1, block#
4568)
ORA-10564: tablespace SYSTEM
ORA-01110: data file 1: '/opt/oracle/oradata/orcl/system01.dbf'
ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 576
Errors in file /opt/oracle/admin/orcl/bdump/orcl_p002_7917.trc:
ORA-10562: Error occurred while applying redo to data block (file# 1, block# 4568)
网络上给的解释是:当前在线日志损坏,导致undo回滚段出现问题,又由于系统突然掉电,系统表空间在重启实例后要进行实例恢复,当前在线日志损坏,系统表空间无法进行recover
SQL>startup mount
SQL>recover database using backup controlfile until cancel;
SQL>alter database open resetlogs;
SQL> startup mount
SQL> alter system set “_allow_resetlogs_corruption”=true scope=spfile;
SQL>shutdown immediate
SQL> startup mount
SQL> alter database open resetlogs;
SQL> startup