zoukankan      html  css  js  c++  java
  • ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]问题处理

    服务器断电,异常关机后,重启报错ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]

    数据库运行环境是Linux上运行的ORACLE11G

    --尝试启动数据库实例,报错如下:

    SQL> startup
    ORACLE instance started.

    Total System Global Area 1068937216 bytes
    Fixed Size 2260088 bytes
    Variable Size 624952200 bytes
    Database Buffers 436207616 bytes
    Redo Buffers 5517312 bytes
    Database mounted.
    ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
    [89], [32294], [32511], [], [], [], [], [], [], []

    --此时数据库启动到mount状态,尝试以resetlogs方式open数据库,也无法打开
    SQL> select open_mode from v$database;

    OPEN_MODE
    --------------------
    MOUNTED

    SQL> alter database open resetlogs;
    alter database open resetlogs
    *
    ERROR at line 1:
    ORA-01139: RESETLOGS option only valid after an incomplete database recovery

    --尝试recover后,打开数据库,仍然报相同错误
    SQL> recover database;
    Media recovery complete.
    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
    [89], [32294], [32511], [], [], [], [], [], [], []

    查询告警日志altertrace文件,对照上网查询错误,获取报错原因:
    由于服务器异常短电,导致LGWR写联机日志文件时失败,下次重新启动数据库时,需要做实例级恢复,而又无法从联机日志文件里获取到这些redo信息,因为上次断电时,写日志失败了

    --查看当前日志文件情况,从以下查询结果可以看到当前日志组为89
    SQL> select group#,sequence#,status,first_time,next_change# from v$log;

    GROUP# SEQUENCE# STATUS FIRST_TIM NEXT_CHANGE#
    ---------- ---------- ---------------- --------- ------------
    1 88 INACTIVE 16-JUN-16 3012456638
    2 89 CURRENT 16-JUN-16 2.8147E+14
    3 87 INACTIVE 16-JUN-16 3012450709
    4 1 INACTIVE 13-JUN-16 3011785042
    5 0 UNUSED 0

    --恢复数据库,指定redo02.log日志
    SQL> recover database until cancel using backup controlfile;
    ORA-00279: change 3012500746 generated at 06/16/2016 22:40:33 needed for thread
    1
    ORA-00289: suggestion :
    /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2016_06_16/o1_mf_1_89_%u_.arc
    ORA-00280: change 3012500746 for thread 1 is in sequence #89


    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    /u01/app/oracle/oradata/orcl/redo02.log
    Log applied.
    Media recovery complete.

    --恢复完成后,再次可以正常打开数据库,重启数据库正常。

    SQL> alter database open;
    alter database open
    *
    ERROR at line 1:
    ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


    SQL> alter database open resetlogs;

    Database altered.

    生命不息,折腾不止;不计后果,不问前程!
  • 相关阅读:
    Python基础练习
    AngularJS学习之旅—AngularJS 过滤器(七)
    AngularJS学习之旅—AngularJS 控制器(六)
    AngularJS学习之旅—AngularJS Scope作用域(五)
    AngularJS学习之旅—AngularJS 模型(四)
    AngularJS学习之旅—AngularJS 指令(三)
    AngularJS学习之旅—AngularJS 表达式(二)
    AngularJS学习之旅—AngularJS 简介(一)
    SQL Server排名或排序的函数
    Asp.net导出Excel/Csv文本格式数据
  • 原文地址:https://www.cnblogs.com/jionjionyou/p/5602019.html
Copyright © 2011-2022 走看看