此類錯誤可能發生在服務器電源突然失敗(使用備份控制文件進行恢復)
報錯類型:
SQL> alter database open * ERROR at line 1: ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [23], [81], [189], [], [], [], [], [], [], []
解決方案:
1.查看控制文件位置與當前oracle使用的聯機重做日誌文件
SQL> Show parameter control_files; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ control_files string D:\APP\MAZAR\ORADATA\ORCL\CONT ROL01.CTL, D:\APP\MAZAR\FLASH_ RECOVERY_AREA\ORCL\CONTROL02.C TL SQL> select a.member,a.group#,b.status from v$logfile a ,v$log b where a.group#=b.group# and b.status='CURRENT'; MEMBER -------------------------------------------------------------------------------- GROUP# STATUS ---------- ---------------- D:\APP\MAZAR\ORADATA\ORCL\REDO02.LOG 2 CURRENT
2.關閉數據庫,並備份控制文件
C:\Windows\system32>COPY D:\APP\MAZAR\ORADATA\ORCL\CONTROL01.CTL D:\APP 1 file(s) copied.
3.掛載數據庫並使用控制日誌與聯機重做日誌進行恢復
SQL> recover database using backup controlfile until cancel; ORA-00279: change 1460665 generated at 10/08/2012 08:38:00 needed for thread ORA-00289: suggestion : D:\APP\MAZAR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2012_10_14\O1_MF_1_23_%U_.ARORA-00280: change 1460665 for thread 1 is in sequence #23 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} D:\APP\MAZAR\ORADATA\ORCL\REDO02.LOG Log applied. Media recovery complete.
4.打開數據庫,並重置日誌文件
SQL> alter database open resetlogs; Database altered.
參考文件:
http://mohamedazar.com/2012/10/14/ora-00600-kcratr_nab_less_than_odr-when-alter-database-open-fails/