【ORA-600】[kcratr_nab_less_than_odr] 异常宕机后的实例恢复during Instance Recovery after Database Crash

由于操作系统异常变为只读操作系统,不能写数据文件,导致实例异常终止。从而导致实例重启时,在open阶段,报ORA-600 [kcratr_nab_less_than_odr]错误。


ORA-600 [kcratr_nab_less_than_odr] during Instance Recovery after Database Crash (文档 ID 1299564.1)

APPLIES TO:

Oracle Database - Enterprise Edition - Version 11.2.0.1 to 11.2.0.3 [Release 11.2]
Information in this document applies to any platform.
***Checked for relevance on 21-Sep-2012***

我的数据库是11.2.0.4,也同样有此问题。


SYMPTOMS

Trying to open a Database after a Crash caused by Storage Problems the Instance Recovery fails with :

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [219], [25020], [25021], []

 

The Database can't open at this Point. In the corresponding Tracefile we can find this Error Callstack:

dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=1h50ks4ncswfn) -----
ALTER DATABASE OPEN

----- Call Stack Trace -----
ksedst1 <- ksedst <- dbkedDefDump <- ksedmp <- dbgexPhaseII <- dbgexProcessError <- dbgePostErrorKGE  <- kgeasnmierr <- kcratr_odr_check  <- kcratr <- kctrec <- kcvcrv <- kcfopd <- adbdrv <- opiexe <- opiosq0 <- kpoal8 <- opiodr <- ttcpip <- opitsk <- opiino <- opiodr <- opidrv <- sou2o <- opimai_real <- ssthrdmain <- main <- start

CAUSE

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.

这个问题是由于数据库文件的存储问题导致的。当数据库在open状态的时候子系统(如SAN)宕掉了。由于数据文件不能访问,因此数据库会紧接着宕掉。由于不能写联机重做日志,因此在重启数据库实例的时候不能进行实例恢复,从而报ORA-600的错误。


SOLUTION

There are two possible Solutions两个解决方法:

1. If you could restore your Storage Environment and the Online RedoLogs from the Time of the crash you can try a manual Recovery followed by a RESETLOGS:

如果可以恢复存储环境,并且将联机重做日志恢复到实例宕掉的那一时间点,那么可以通过RESETLOGS执行手工恢复。

SQL> startup mount;

SQL> recover database until cancel using backup controlfile;


-> manually provide Online RedoLog containing the last (current) Sequence when asked, eg.

ORA-00279: change 100000 generated at xx/xx/xxxx xx:xx:xx needed for thread 1
ORA-00289: suggestion :
/flash_recovery/archivelog/xxxx_xx_xx/o1_mf_1_100_%u_.arc
ORA-00280: change 100000 for thread 1 is in sequence #100

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/ora/oradata/dbtest/redo04_1.rdo  --数据库宕掉时所应用的联机在线日志
Log applied.
Media recovery complete.

SQL> alter database open resetlogs;


2. If  step1. fails or you don't have the full Set of Files you have to restore and recover the Database from a recent Backup.

    如果第一个方法不成功或者有文件丢失的话,那么你就只能从最近的备份中恢复数据库了。

      

Sharon
2014.07.16


 

----------------------------------------------------------------------------------------------

转载须注明出处!

http://blog.csdn.net/sharqueen_wu/article/details/37876369

转载须注明出处!

http://blog.csdn.net/sharqueen_wu/article/details/37876369

转载须注明出处!

http://blog.csdn.net/sharqueen_wu/article/details/37876369





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值