採用全資料庫匯出或冷/熱備份結合方式重建。注意:線上 redo log 中的交易將遺失。
IGNORE=Y依損壞表空間類型(回滾段、使用者、索引、唯讀)採取不同步驟。通用流程:
STARTUP MOUNTV$LOG、V$LOGFILE 取得線上 redo log 群組、序號、首次變更號OWNER=、TABLES=init.ora 或 config.ora 中 CONTROL_FILES 參數STARTUP NOMOUNTCREATE CONTROLFILE 重建,或執行 ALTER DATABASE BACKUP CONTROLFILE TO TRACE 產生的腳本SHUTDOWN NORMAL直接重建遺失索引即可。
ALTER SYSTEM SWITCH LOGFILE 切換 logSTARTUP MOUNT步驟類似事件 8,但須注意:作用中交易將遺失。
立即做一次冷備份,最好再做一次全資料庫匯出。後續任何恢復皆為不完全恢復。
假設資料庫已啟動且運行於 ARCHIVELOG 模式,目標保留作用中交易。
V$ROLLSTAT、DBA_ROLLBACK_SEGS 確認狀態V$SESSION、V$TRANSACTION、V$ROLLNAME 找出持有交易的 session,要求提交/回滾或 ALTER SYSTEM KILL SESSIONDBVERIFY 驗證所有資料檔STARTUP MOUNT若資料庫正常:冷備份 + 全資料庫匯出。若資料庫也損壞:用 ORA-1157 找出受影響表,跳過壞區塊導出資料到暫存表,丟棄損壞表,重命名暫存表,重建索引,ANALYZE ... VALIDATE STRUCTURE CASCADE。注意:壞區塊資料無法恢復。
STARTUP MOUNTV$BACKUP 找出 ACTIVE 狀態資料檔ALTER DATABASE DATAFILE ... END BACKUP 結束備份模式STARTUP NOMOUNTRECOVER DATABASE UNTIL TIME '...'SHUTDOWN NORMALSTARTUP NOMOUNTRECOVER DATABASE UNTIL CANCEL 並依序套用存檔 log 至目標事件CANCELSHUTDOWN NORMAL高可用性是企業核心指標。DBA 應預先規劃完整備份策略,並熟練各類故障恢復演練,才能在災難發生時將停機時間壓縮至最低。