今天给客户做数据恢复,发现必须使用隐藏参数_allow_resetlogs_corruption,结果一用报出了ORA-00600 2662的错误。
客户那边说丢失了一个数据文件CUUG.DBF,只有一个以前的冷备份(结果就备份了这一个数据文件............#@#@¥...)。接管客户系统时,那边dba已经将控制文件重建了。无语中......
将以前的数据文件拷贝回来,重新注册归档日志后,开始恢复。报错:
提示ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/opt/Oracle/product/10.2.0/oradata/orcl1/system01.dbf'
看下数据文件的SCN:
SQL> select CHECKPOINT_CHANGE# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
591931
591931
591931
591931
505927
然后看下归档日志:
/opt/oracle/product/10.2.0/flash_recovery_area/ORCL1/archivelog/2012_05_19/o1_mf_1_9_7vh78q75_.arc 591800 591805
/opt/oracle/product/10.2.0/flash_recovery_area/ORCL1/archivelog/2012_05_19/o1_mf_1_8_7vh78gwc_.arc 590306 591800
/opt/oracle/product/10.2.0/flash_recovery_area/ORCL1/archivelog/2012_05_19/o1_mf_1_10_7vh7b2xs_.arc 591805 591931
这眼看普通恢复没戏了.....归档日志不连续。
开启隐藏参数
sql> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
再次尝试打开数据库,开始提示ORA-00600错误了。
Wed May 23 15:06:44 2012
SMON: enabling cache recovery
Wed May 23 15:06:44 2012
Errors in file /opt/oracle/product/10.2.0/admin/orcl1/udump/orcl1_ora_4268.trc:
ORA-00600: internal error code, arguments: [2662], [0], [545944], [0], [590505], [4194313], [], []
Wed May 23 15:06:44 2012
Incremental checkpoint up to RBA [0x1.3.0], current log tail at RBA [0x1.3.0]
Wed May 23 15:06:44 2012
Errors in file /opt/oracle/product/10.2.0/admin/orcl1/udump/orcl1_ora_4268.trc:
ORA-00600: internal error code, arguments: [2662], [0], [545944], [0], [590505], [4194313], [], []
Wed May 23 15:06:44 2012
Error 600 happened during db open, shutting down database
USER: terminating instance due to error 600
Instance terminated by USER, pid = 4268