IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

ORA-00600 kcratr_nab_less_than_odr案例一则

Oracle Life 2010-05-27 12:29:23 累计浏览 1,912 次
本机暂存
    近日,有朋友遇到了ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr]错误,具体的错误信息类似:

    Incident 63078 created, dump file: /u01/diag/rdbms/orcl/orcl/incident/incdir_63078/orcl_ora_1916_i63078.trc

    ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], []

    ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], []

    ORA-00600: 内部错误代码, 参数: [kcratr_nab_less_than_odr], [1], [3313], [2328320], [2334233], [], [], [], [], [], [], []

    朋友说这个错误在metalink上找不到解释。

    其实,很多时候在处理问题时,我们可能都无法找到针对性的参考,这时候,猜测就很重要了。

    当学习到一定阶段:猜测将成为一种重要的学习能力

    这时Oracle 11g中的问题,猜测错误号,[kcratr_nab_less_than_odr],根据less than字样,可以判断是在进行某个比较时,出现问题,剩下的kcratr,nab,odr都可以进行猜测,比如odr可能是Oracle Data Redo/Oracle Data Recovery等等的缩写。

    再通过进一步的日志信息可以看到:

    Thread 1 checkpoint: logseq 3313, block 2, scn 5965899084787

     cache-low rba: logseq 3313, block 1484161

     on-disk rba: logseq 3313, block 2334233, scn 5965899135009

     start recovery at logseq 3313, block 1484161, scn 0

    这里就知道了600错误中的1,3313的含义,是Thread 1 logseq 3313,那么剩下的就应该是恢复时的rba地址,错误提示中的2334233是On-Disk Rba,是恢复应该到达的终点,而2328320小于On-Disk Rba,就应该是Less Than里面提到的恢复的终点,因为没有到达Redo的最后位置,被认为是非法的,可能丢失数据。

    再向下检查错误跟踪文件,可以验证我们的推测:

    WARNING! Crash recovery of thread 1 seq 3313 is

    ending at redo block 2328320 but should not have ended before

    redo block 2334233

    现在600错误中的另外重要信息出现了,2328320是恢复的中止位置,小于了on-disk rba.

    那么现在不需要Metalink,我们就可以判断和解决这个600问题了,数据库无法启动的原因就是恢复的进度不够,进度不够可能是因为Redo写丢失或者硬件故障。

    我们可以尝试进行恢复,如果仍然无法到达这个位置,则可以考虑忽略这些未应用的Redo,启动数据库。

    这个案例和之前遇到的ORA-00600 kcratr1_lostwrt之解决与原理分析极其相似。

    我在这里还想强调的就是,猜测是一种很重要的能力。

同分类推荐文章

  1. 使用deepseek进行Oracle恢复,引起重大故障 (2026-06-22 10:56:00)
  2. 接手一个只差临门一脚的数据库恢复 (2026-06-18 00:13:09)
  3. 我做了一个 AI 版的 StarRocks 升级风险扫描工具,直接帮我定位到一个风险 (2026-06-15 01:00:00)

查看更多 数据库 文章 →

建议继续学习

  1. 404~遇见你是最美丽的错误 (累计阅读 9,351)
  2. TTS实现跨版本迁移数据 (累计阅读 4,545)
  3. Grid Control监控-进程累积导致的宕机 (累计阅读 3,934)
  4. Perl 异常处理之 autodie 和 Try::Tiny (累计阅读 3,720)
  5. PHP错误处理及异常处理 (累计阅读 3,503)
  6. 云和恩墨版Oracle Database 12c 最新体系结构图下载 (累计阅读 3,409)
  7. 登录时密码错误了该怎么提示? (累计阅读 3,281)
  8. Debugging JavaScript:throw与console (累计阅读 3,262)
  9. game dba眼中的范式 (累计阅读 3,268)
  10. WEB设计中的“帮助用户从错误中恢复” (累计阅读 3,214)