`

ORA-00600[kcratr_nab_less_than_odr]故障解决

阅读更多
朋友的数据库服务器出现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

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 "DBDMS" NORESETLOGS  NOARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 18688
  7  LOGFILE
  8    GROUP 1 'D:\DBDMS\LOG\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  9    GROUP 2 'D:\DBDMS\LOG\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
 10    GROUP 3 'D:\DBDMS\LOG\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
 11  DATAFILE
 12    'D:\DBDMS\DATA\SYSTEM01.DBF',
 13    'D:\DBDMS\DATA\SYSAUX01.DBF',
 14    'D:\DBDMS\DATA\RBSG01.DBF',
 15    'D:\DBDMS\DATA\DATA01.DBF',
 16    'D:\DBDMS\DATA\INDX01.DBF',
 17    'D:\DBDMS\DATA\DATA02.DBF',
 18    'D:\DBDMS\DATA\DATA03.DBF',
 19    'D:\DBDMS\DATA\DATA04.DBF',
 20    'D:\DBDMS\DATA\INDX02.DBF',
 21    'D:\DBDMS\DATA\SYSTEM02.DBF'
 22  CHARACTER SET ZHS16GBK
 23  ;
 
控制文件已创建。
 
--继续尝试恢复
SQL> RECOVER DATABASE ;
完成介质恢复。
SQL> ALTER DATABASE OPEN;
 
数据库已更改。
--open成功


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

转自:http://www.xifenfei.com/2347.html
照此文的方法,搞好了同事的数据库,录了两个月的数据没有丢失,同事答应请吃饭。感谢原作者。
分享到:
评论

相关推荐

    oracle11g 内部参数出错问题

    Oracle 11g 内部错误代码 ORA-00600 是一个非常通用的错误,它表示数据库遇到了一个无法处理的内部错误或异常情况。这个错误通常涉及到Oracle数据库的底层结构,如数据块、索引或者内存管理等,且参数列表可以提供...

    解决Exception java.sql.SQLException ORA-00600 内部错误代码

    在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    ORA-00600【4194】.pdf

    在启库时,我们遇到了 ORA-00600[4194] 错误,但通过解决方案,我们成功地解决了这个问题。 知识点6: Oracle 表空间管理 在本文中,我们创建、删除和管理了Undo 表空间。这是 Oracle 表空间管理的重要组成部分。...

    Oracle_ORA-12518故障_处理

    本文旨在详细介绍ORA-12518错误的成因、常见表现形式以及具体的故障排查方法,以帮助读者在实际工作中能够更高效地解决这一问题。 #### 目的 本文旨在探讨如何接近并解决ORA-12518/TNS-12518错误,并提供详细的...

    启动oracle数据库报错:ORA-00600

    - ORA-00600错误后面的参数[kcratr_scan_lastbwr]提供了有关错误的更具体信息。这些参数是Oracle内部使用的,用于识别问题的具体细节。不过,对于普通用户来说,这些参数可能难以理解,通常需要数据库管理员或...

    Ora-00600 [Qerltcuseriterget_1], [1], [1], [] and Ora-1502 (Doc ID 1432485.1)

    在Oracle数据库管理与维护过程中,有时会遇到一些内部错误,其中ORA-00600和ORA-1502是较为常见的两类错误之一。本文将详细解析这两种错误的具体含义、发生原因以及解决方法。 #### 二、ORA-00600 错误 **错误定义...

    Oracle 报错ORA-00845 MEMORY_TARGET not supported on this system

    Oracle数据库在运行过程中,经常会遇到各种错误代码,错误代码ORA-00845是其中的一个,它是指“MEMORY_TARGET not supported on this system”。这个错误一般发生在尝试在不支持MEMORY_TARGET参数的系统上设置该参数...

    p8922013_10204_Linux-x86-64.zipORA-00600: INTERNAL ERROR CODE, ARGUMENTS: [17059

    标签 "ORA-00600 Oracle 补丁 Patches Update" 暗示了这个问题的解决方案可能涉及更新数据库的补丁,通过应用补丁8922013,可能是Oracle公司针对ORA-00600错误的特定修复。 压缩包子文件的文件名称列表只有一个 ...

    oracle报错(ORA-00600)问题处理

    Oracle数据库报错ORA-00600是一个内部错误,通常表示系统遇到了未预见的问题或已知的软件缺陷。这个错误通常与Oracle的内核代码有关,而不是用户的SQL操作。在描述中,我们看到错误与“kcblasm_1”和参数103相关联,...

    listener_ora--sqlnet_ora--tnsnames_ora的关系以及手工配置举例

    在Oracle数据库系统中,`listener.ora`, `sqlnet.ora` 和 `tnsnames.ora` 是三个至关重要的配置文件,它们共同负责网络服务的管理和连接。理解它们之间的关系和如何手工配置对于管理和维护Oracle数据库是至关重要的...

    ORA-00904: "WM_CONCAT": 标识符无效

    在Oracle数据库中,"ORA-00904"是一个常见的错误代码,它表示尝试引用一个不存在或无效的标识符。在这个场景下,错误信息提到的是"WM_CONCAT"函数,这表明在Oracle 19c数据库环境中,用户尝试使用WM_CONCAT函数,但...

    ORA-00600: internal error code, arguments [4194]错误

    NULL 博文链接:https://gembler.iteye.com/blog/346242

    断电与ORA-600问题集

    ORA-00600[kcratr1_lostwrt]错误通常发生在数据库试图写入控制文件时失败的情况。 **解决办法:** 对于此类问题,可以尝试重建控制文件。 ##### 1.7.2. ORA-00600[19004] ORA-600[19004]错误通常是由于数据库在...

    ORA-04052p5731178_92080_WINNT.zip

    ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...

    如何解决ORACLE系统Ora-00600错误故障.pdf

    标题和描述中提到的是关于如何解决Oracle数据库系统中出现的Ora-00600错误的故障处理方法。Ora-00600错误是Oracle数据库内部错误,通常表明系统遇到了无法处理的异常情况。这篇文档可能提供了解决这个问题的步骤和...

    ORA-20011_ORA-06564_info.html

    ORA-20011,ORA06564错误分析

    ORA-00600 reference

    ### ORA-00600 错误快速参考指南 #### 概述 ORA-00600 错误通常被视为 Oracle 数据库中最严重的一类错误之一,这类错误通常意味着数据库内核中出现了某种异常情况。由于这类错误往往与数据库的核心组件紧密相关,...

Global site tag (gtag.js) - Google Analytics