ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1498], [18713], [18720]

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [1498], [18713], [18720]

数据库server出现ORA-00600[kcratr_nab_less_than_odr]。不能open数据库
1.open数据库报ORA-00600[kcratr_nab_less_than_odr]
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_than_odr], [1], [99189],
[43531], [43569], [], [], [], [], [], [], []
2.查看alert日志
Wed Jan 11 13:56:16 2012
ALTER DATABASE OPEN
Beginning crash recovery of 1 threads
 parallel recovery started with 2 processes
Started redo scan
Completed redo scan
 read 54591 KB redo, 0 data blocks need recovery
Errors in file d:\dbdms\diag\rdbms\dbdms\dbdms\trace\dbdms_ora_3108.trc  (incident=818557):
ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_than_odr], [1], [99189], [43531], [43569], [], [], [], [], [], [], []
Incident details in: d:\dbdms\diag\rdbms\dbdms\dbdms\incident\incdir_818557\dbdms_ora_3936_i818557.trc
Aborting crash recovery due to error 600
Errors in file d:\dbdms\diag\rdbms\dbdms\dbdms\trace\dbdms_ora_3108.trc:
ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_than_odr], [1], [99189], [43531], [43569], [], [], [], [], [], [], []
Errors in file d:\dbdms\diag\rdbms\dbdms\dbdms\trace\dbdms_ora_3108.trc:
ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_than_odr], [1], [99189], [43531], [43569], [], [], [], [], [], [], []
ORA-600 signalled during: ALTER DATABASE OPEN…
Trace dumping is performing id=[cdmp_20120110214555]
3.查看trace文件
Trace file d:\dbdms\diag\rdbms\dbdms\dbdms\trace\dbdms_ora_3108.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Windows NT Version V6.1 Service Pack 1 
CPU                 : 2 – type 8664, 2 Physical Cores
Process Affinity    : 0x0x0000000000000000
Memory (Avail/Total): Ph:2250M/4060M, Ph+PgF:5868M/8119M
Instance name: dbdms
Redo thread mounted by this instance: 1
Oracle process number: 17
Windows thread id: 3108, image: ORACLE.EXE (SHAD)
…………………………
WARNING! Crash recovery of thread 1 seq 99189 is
ending at redo block 43531 but should not have ended before
redo block 43569
Incident 826550 created, dump file: d:\dbdms\diag\rdbms\dbdms\dbdms\incident\incdir_826550\dbdms_ora_3108_i826550.trc
ORA-00600: ??????, ??: [kcratr_nab_less_than_odr], [1], [99189], [43531], [43569], [], [], [], [], [], [], []
 
ORA-00600: ??

????, ??

: [kcratr_nab_less_than_odr], [1], [99189], [43531], [43569], [], [], [], [], [], [], []

ORA-00600: ???

?

??

, ??: [kcratr_nab_less_than_odr], [1], [99189], [43531], [43569], [], [], [], [], [], [], []

通过alert和trace中的内容能够知道,数据库须要恢复到rba到43569,可是由于某种原因实例恢复的时候,仅仅能利用1 thread 99189 seq#,恢复rba到43531。

从而导致数据库无法正常open

This Problem is caused by Storage Problem of the Database Files. 
The Subsystem (eg. SAN) crashed while the Database was open. 
The Database then crashed since the Database Files were not accessible anymore. 
This caused a lost Write into the Online RedoLogs and so Instance Recovery is not possible and raising the ORA-600.
4.解决方法
SQL> SELECT STATUS FROM V$INSTANCE;
 
STATUS
————
MOUNTED
 
–尝试直接recover database
SQL> RECOVER DATABASE ;
ORA-00283: 恢复会话因错误而取消
ORA-00264: 不要求恢复
–提示不用恢复
 
–再打开数据库。还是kcratr_nab_less_than_odr错误警告
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
第 1 行出现错误:
ORA-00600: 内部错误代码, 參数: [kcratr_nab_less_than_odr], [1], [99189],
[43531], [43569], [], [], [], [], [], [], []
 
–尝试不全然恢复
SQL> RECOVER DATABASE UNTIL CANCEL;
ORA-10879: error signaled in parallel recovery slave
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现例如以下错误
ORA-01152: 文件 1 没有从过旧的备份中还原
ORA-01110: 数据文件 1: ‘D:\DBDMS\DATA\SYSTEM01.DBF’
 
–重建控制文件
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS ‘D:/1.TXT’;
 
数据库已更改。
 
SQL> SHUTDOWN IMMEDIATE;
ORA-01109: 数据库未打开
 
 
已经卸载数据库。

ORACLE 例程已经关闭。
SQL> STARTUP NOMOUNT;
ORACLE 例程已经启动。

 
Total System Global Area  417546240 bytes
Fixed Size                  2176328 bytes
Variable Size             268438200 bytes
Database Buffers          138412032 bytes
Redo Buffers                8519680 bytes
SQL> 
create controlfile reuse database ‘AFC010C1’ noresetlogs noarchivelog

maxlogfiles 16

maxlogmembers 4

maxdatafiles 100

maxinstances 8

maxloghistory 18688

logfile

group 1 (‘/oracle/redo1/AFC010C1/redo01a.log’,’/oracle/redo2/AFC010C1/redo01b.log’) size 50M blocksize 512,

group 2 (‘/oracle/redo1/AFC010C1/redo02a.log’,’/oracle/redo2/AFC010C1/redo02b.log’) size 50M blocksize 512,

group 3 (‘/oracle/redo1/AFC010C1/redo03a.log’,’/oracle/redo2/AFC010C1/redo03b.log’) size 50M blocksize 512,

group 4 (‘/oracle/redo1/AFC010C1/redo04a.log’,’/oracle/redo2/AFC010C1/redo04b.log’) size 50M blocksize 512

DATAFILE

‘/oracle/data1/AFC010C1/AFC_BIZ_DATA01.dbf’,

‘/oracle/data1/AFC010C1/AFC_LOG_DATA01.dbf’,

‘/oracle/data1/AFC010C1/AFC_TXN_DATA01.dbf’,

‘/oracle/data1/AFC010C1/AFC_CD_DATA01.dbf’,

‘/oracle/data1/AFC010C1/AFC_RPT_DATA01.dbf’,

‘/oracle/data1/AFC010C1/AFC_WS_DATA01.dbf’,

‘/oracle/data1/AFC010C1/sysaux01.dbf’,

‘/oracle/data1/AFC010C1/AFC_EOD_DATA01.dbf’,

‘/oracle/data1/AFC010C1/AFC_SYSCD_DATA01.dbf’,

‘/oracle/data1/AFC010C1/DBMGR_DATA01.dbf’,

‘/oracle/data1/AFC010C1/system01.dbf’,

‘/oracle/data2/AFC010C1/AFC_BIZ_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_CD_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_EOD_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_LOG_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_RPT_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_SYSCD_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_TXN_INDX01.dbf’,

‘/oracle/data2/AFC010C1/AFC_WS_INDX01.dbf’,

‘/oracle/data2/AFC010C1/DBMGR_INDX01.dbf’,

‘/oracle/data2/AFC010C1/undotbs01.dbf’,

‘/oracle/data2/AFC010C1/users01.dbf’

character set zhs16gbk;

控制文件已创建。
 
–继续尝试恢复
SQL> RECOVER DATABASE ;
完毕介质恢复。
SQL> ALTER DATABASE OPEN;
 
数据库已更改。

–open成功
在这次恢复中,主要就是重建控制文件,然后直接恢复成功。假设redo有损坏,那么可能须要使用不全然恢复。然后使用resetlogs打开数据库

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109082.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 机器学习笔记 – 自动编码器autoencoder

    机器学习笔记 – 自动编码器autoencoder自编码器是开发无监督学习模型的主要方式之一。但什么是自动编码器?简而言之,自动编码器通过接收数据、压缩和编码数据,然后从编码表示中重构数据来进行操作。对模型进行训练,直到损失最小化并且尽可能接近地再现数据。通过这个过程,自动编码器可以学习数据的重要特征。自动编码器是由多个层组成的神经网络。自动编码器的定义方面是输入层包含与输出层一样多的信息。输入层和输出层具有完全相同数量的单元的原因是自动编码器旨在复制输入数据。然后分析数据并以无监督方式重建数据后输出数据副本。

    2022年5月9日
    54
  • js动画效果_js动画函数

    js动画效果_js动画函数一、setTimeoutVS.requestAnimationFrame传统js动画实现一般使用setTimeout/setInterval等定时方式执行一个动画更新操作,但这种方式在使用中存在一些问题。动画帧间隔interval问题大部分显示器的刷新频率是16.7ms,如果setTimeout的interval小于这个值,就会出现绘制的帧无法在显示器上展现的问题,好像被吞掉了一样。另

    2022年10月15日
    0
  • python test suite_vue进度条插件

    python test suite_vue进度条插件前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月31日
    1
  • java中如何定义一个数组「建议收藏」

    java中如何定义一个数组「建议收藏」数组的定义方法 int[]a;//定义一个数组a int[]b=newint[10];//定义一个长度为10的数组b int[]c={7,1,2,3,8};//定义一个数组c,并赋值,其中a[0]=7,a[4]=8; //以数组b为例,长度为10,分别是从b[0]-b[9];…

    2022年7月7日
    16
  • 六、策略模式—旅行的交通工具 #和设计模式一起旅行#[通俗易懂]

    兵无常势,水无常形,能因敌变化而取胜者,谓之神! ——《孙子兵法》故事背景旅行开始,我和设计模式mm要去的目的地很多,去往不同目的地可以选择的交通工具也是多样的,从北京到上海,我们可以选择自驾游、乘坐飞机、高铁,甚至是骑单车等等方式!每一种交通工具到达目的的时间也不同,假如从北京到上海,乘坐飞机两个小时,高铁五个小时,自驾游3天(3*24小时),每一种交通费也不一样!假…

    2022年2月27日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号