您的位置:首页 > 其它

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

2014-07-16 13:46 525 查看
由于操作系统异常变为只读操作系统,不能写数据文件,导致实例异常终止。从而导致实例重启时,在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,也同样有此问题。SYMPTOMSTrying 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 <- startCAUSEThis 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 OnlineRedoLogs and so Instance Recovery is not possible and raising the ORA-600.这个问题是由于数据库文件的存储问题导致的。当数据库在open状态的时候子系统(如SAN)宕掉了。由于数据文件不能访问,因此数据库会紧接着宕掉。由于不能写联机重做日志,因此在重启数据库实例的时候不能进行实例恢复,从而报ORA-600的错误。SOLUTIONThere 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 1ORA-00289: suggestion :/flash_recovery/archivelog/xxxx_xx_xx/o1_mf_1_100_%u_.arcORA-00280: change 100000 for thread 1 is in sequence #100Specify 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
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息