IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Oracle Recovery Tools修复ORA-600 6101/kdxlin:psno out of range故障

    惜分飞发表于 2025-04-14 11:10:09
    love 0

    联系:手机/微信(+86 17813235971) QQ(107644445)QQ咨询惜分飞

    标题: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工具进行快速恢复
    QQ20250414-123421
    再次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>
    

    逻辑方法导出该库,完成该库的恢复工作

    • 硬件故障数据库异常恢复
    • ORA-10562 故障恢复—allow 1 corruption
    • Oracle 19c 断电异常恢复
    • ORA-00322 ORA-00312恢复
    • Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障
    • ORA-07445: exception encountered: core dump [kdxlin()+4088]处理
    • 记录一次ORA-00600[kdxlin:psno out of range]/ORA-00600[3020]/ORA-00600[4000]/ORA-00600[4193]的数据库恢复
    • 近1万个数据文件的恢复case
    • Oracle Recovery Tools 解决ORA-600 3020故障
    • ORA-600 3020/ORA-600 2662故障
    • ORA-00742 ORA-00312 恢复
    • 断电引起redo和数据文件不一致故障恢复


沪ICP备19023445号-2号
友情链接