SQL> STARTUP
ORA-00600: internal error code, arguments: [kcratr1_lostwrt], [], [], [], [], [], [], []
常見於非正常關機(掉電、Kill 進程)導致 Redo Log 與 Datafile 不一致。
SQL> SHUTDOWN ABORT; -- 強制關閉(若實例仍掛著)
SQL> STARTUP MOUNT; -- 掛載但不開啟
SQL> RECOVER DATABASE; -- 介質恢復,應用 Redo Log
SQL> ALTER DATABASE OPEN; -- 開啟資料庫
C:\> sqlplus / as sysdba
SQL> SHUTDOWN ABORT
ORACLE instance shut down.
SQL> STARTUP MOUNT
ORACLE instance started.
Database mounted.
SQL> RECOVER DATABASE
Media recovery complete.
SQL> ALTER DATABASE OPEN
Database altered.
SQL> EXIT
kcratr1_lostwrt 表示控制檔記錄的資料檔检查點 SCN 大於 Redo Log 能提供的 SCN,即「遺失寫入」。RECOVER DATABASE 會掃描所有 Online Redo Log,將變更應用至 Datafile,使其前滾至一致狀態。RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL。ARCHIVELOG 模式並定期備份。FAST_START_MTTR_TARGET 控制恢復時間。SHUTDOWN IMMEDIATE 正常關機。-- 檢查資料檔狀態
SELECT FILE#, STATUS, ERROR FROM V$RECOVER_FILE;
-- 檢查 Redo Log 狀態
SELECT GROUP#, STATUS, MEMBERS FROM V$LOG;