隨著企業對資訊系統依賴度提高,資料庫可靠性至關重要。DBA 必須依業務需求制定詳細備份/恢復策略,並透過模擬故障嚴格測試,確保高可用性。本文系統整理 Oracle 可能遭遇的各類故障及對應恢復方法,供參考。
EXP 匯出表/使用者/全庫,支援完全/累加/增量,資料庫須開啟,最好在 RESTRICT 模式確保一致性恢復原則:只能在故障前備份基礎上套用 redo 向前滾動,無法將當前資料庫向後回滾。
init.ora 中該檔路徑即可啟動NOMOUNT 下 CREATE CONTROLFILE 重建,需提供 redo log、datafile 路徑及 MAX 參數;若有 BACKUP CONTROLFILE TO TRACE 腳本可直接執行;用舊控制檔恢復需 RECOVER ... USING BACKUP CONTROLFILE 並 OPEN RESETLOGSALTER DATABASE RENAME FILE → 啟動 → 冷備份MOUNT → 轉 NOARCHIVELOG → ADD LOGFILE MEMBER → DROP LOGFILE MEMBER → 備份控制檔 → 轉回 ARCHIVELOG → 冷備份SHUTDOWN ABORT → 從最近全備份還原所有資料檔 → MOUNT → 必要時 RENAME FILE → RECOVER DATABASE UNTIL CANCEL 套用至最後存檔 → CANCEL → ALTER DATABASE OPEN RESETLOGS → 冷備份。注意:損壞 redo log 內已提交資料將遺失,生產環境務必多成員、多磁碟鏡像。MOUNT 狀態下 RECOVER DATABASE/DATAFILE 完成後才能 OPENOPEN 或 MOUNT 狀態恢復。急需服務時:MOUNT 時 OFFLINE 損壞檔 → OPEN 服務未損壞部分 → RECOVER DATAFILE/TABLESPACE → ONLINE 恢復服務OPEN 狀態恢復,須先建立臨時回滾段(如 CREATE ROLLBACK SEGMENT temp1 TABLESPACE SYSTEM)供交易使用,恢復後再手動 ALTER ROLLBACK SEGMENT ... ONLINE 恢復原有回滾段。MOUNT 恢復則無此顧慮RESETLOGS:OFFLINE 損壞檔 → ALTER DATABASE CREATE DATAFILE ... AS ... 依控制檔資訊重建空檔 → RECOVER TABLESPACE/DATAFILE 套用所有 redo → ONLINE遺失或路徑不可用:SHUTDOWN → 冷備份 → 修改參數檔存檔路徑 → 重啟。Oracle 8+ 提供 LOG_ARCHIVE_DUPLEX_DEST、LOG_ARCHIVE_DEST_n 多路徑甚至遠端備份機制。
RESETLOGS 開啟後立即關機冷備份,因舊備份將失效