联系:手机/微信(+86 17813235971) QQ(107644445)
标题:Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
数据库异常断电,然后启动异常,我接手该库,尝试recover恢复
SQL> recover database; ORA-10562: Error occurred while applying redo to data block (file# 2, block# 63710) ORA-10564: tablespace SYSAUX ORA-01110: ???????? 2: 'H:\TEMP\GDLISNET\SYSAUX01.DBF' ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 179030 ORA-00600: ????????????, ????: [6101], [0], [700], [32], [], [], [], [], [], [], [], [] SQL> recover datafile 1; 完成介质恢复。 SQL> recover datafile 3; 完成介质恢复。 SQL> recover datafile 4; 完成介质恢复。 SQL> recover datafile 5; 完成介质恢复。 SQL> recover datafile 6; 完成介质恢复。 SQL> recover datafile 2; ORA-00283: ?????????? ORA-10562: Error occurred while applying redo to data block (file# 2, block# 63744) ORA-10564: tablespace SYSAUX ORA-01110: ???? 2: 'H:\TEMP\GDLISNET\SYSAUX01.DBF' ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 67482 ORA-00600: ??????, ??: [kdxlin:psno out of range], [], [], [], [], [], [], [], [], [], [], []
alert日志信息
Mon Apr 14 12:31:55 2025 ALTER DATABASE RECOVER database Media Recovery Start started logmerger process Parallel Media Recovery started with 20 slaves Mon Apr 14 12:31:56 2025 Recovery of Online Redo Log: Thread 1 Group 2 Seq 6845 Reading mem 0 Mem# 0: H:\TEMP\GDLISNET\REDO02.LOG Mon Apr 14 12:31:56 2025 Errors in file c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\trace\gdlisnet_pr0e_9840.trc (incident=1489): ORA-00600: 内部错误代码, 参数: [6101], [0], [700], [32], [], [], [], [], [], [], [], [] Incident details in: c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\incident\incdir_1489\gdlisnet_pr0e_9840_i1489.trc Slave exiting with ORA-10562 exception Errors in file c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\trace\gdlisnet_pr0e_9840.trc: ORA-10562: Error occurred while applying redo to data block (file# 2, block# 63710) ORA-10564: tablespace SYSAUX ORA-01110: 数据文件 2: 'H:\TEMP\GDLISNET\SYSAUX01.DBF' ORA-10561: block type 'TRANSACTION MANAGED INDEX BLOCK', data object# 179030 ORA-00600: 内部错误代码, 参数: [6101], [0], [700], [32], [], [], [], [], [], [], [], [] Mon Apr 14 12:31:57 2025 Checker run found 6 new persistent data failures Recovery Slave PR0E previously exited with exception 10562 Media Recovery failed with error 448 Errors in file c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\trace\gdlisnet_pr00_14232.trc: ORA-00283: 恢复会话因错误而取消 ORA-00448: 后台进程正常结束 Slave exiting with ORA-283 exception Errors in file c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\trace\gdlisnet_pr00_14232.trc: ORA-00283: 恢复会话因错误而取消 ORA-00448: 后台进程正常结束 ORA-10562 signalled during: ALTER DATABASE RECOVER database ... ALTER DATABASE RECOVER datafile 2 Media Recovery Start Serial Media Recovery started Recovery of Online Redo Log: Thread 1 Group 2 Seq 6845 Reading mem 0 Mem# 0: H:\TEMP\GDLISNET\REDO02.LOG Errors in file c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\trace\gdlisnet_ora_22400.trc (incident=1369): ORA-00600: ??????, ??: [kdxlin:psno out of range], [], [], [], [], [], [], [], [], [], [], [] Incident details in: c:\app\xff\diag\rdbms\gdlisnet\gdlisnet\incident\incdir_1369\gdlisnet_ora_22400_i1369.trc Media Recovery failed with error 10562 ORA-283 signalled during: ALTER DATABASE RECOVER datafile 2 ...
发现2号数据文件异常,报ORA-600 6101和ORA-600 kdxlin:psno out of range错误,出现该错误的原因主要是由于数据文件的bock和redo中信息不匹配导致,对于这种情况,我这边选择使用Oracle Recovery Tools工具进行快速恢复
再次recover并且直接打开库
SQL> set numw 16 SQL> col CHECKPOINT_TIME for a40 SQL> set lines 150 SQL> set pages 1000 SQL> SELECT status, 2 to_char(checkpoint_time,'yyyy-mm-dd hh24:mi:ss') checkpoint_time,FUZZY,checkpoint_change#, 3 count(*) ROW_NUM 4 FROM v$datafile_header 5 GROUP BY status, checkpoint_change#, to_char(checkpoint_time,'yyyy-mm-dd hh24:mi:ss'),fuzzy 6 ORDER BY status, checkpoint_change#, checkpoint_time; STATUS CHECKPOINT_TIME FUZ CHECKPOINT_CHANGE# ROW_NUM ------- ---------------------------------------- --- ------------------ ---------------- ONLINE 2025-03-28 22:00:09 NO 118575875 6 SQL> SQL> SQL> alter database open; alter database open * 第 1 行出现错误: ORA-01113: 文件 2 需要介质恢复 ORA-01110: 数据文件 2: 'H:\TEMP\GDLISNET\SYSAUX01.DBF' SQL> recover datafile 2; 完成介质恢复。 SQL> alter database open; 数据库已更改。 SQL>
逻辑方法导出该库,完成该库的恢复工作