非預期關閉(斷電、SHUTDOWN ABORT)後,Oracle 下次啟動自動執行:向前捲動重做日誌、回滾未提交事務、釋放資源、解決分散式事務。
RESETLOGS 開啟資料庫。環境:Windows 2000 Server + Oracle 8.1.6。提供三種備份模式腳本:
BEGIN/END BACKUP 複製資料檔,備份控制檔(二進位與追蹤檔)。BACKUP DATABASE INCLUDE CURRENT CONTROLFILE,自動管理備份組與歸檔。BACKGROUND_DUMP_DEST 目錄)V$RECOVER_FILE、V$RECOVERY_LOG僅能恢復至備份時間點,備份後至故障前資料遺失。步驟:關閉 DB → 刪除資料檔模擬故障 → 啟動報錯 → 複製冷備份檔回原位 → ALTER DATABASE OPEN。
OS 方案:OFFLINE DROP 故障檔 → 開啟 DB → 複製備份檔 → RECOVER DATAFILE n → ONLINE。
RMAN 方案:RESTORE DATAFILE n; RECOVER DATAFILE n; ALTER DATABASE DATAFILE n ONLINE,可在 OPEN 狀態下操作,減少停機時間。
MOUNT 狀態下 RESTORE DATABASE; RECOVER DATABASE,OS 需手動複製所有資料檔,RMAN 單一命令完成,均需應用歸檔日誌至最新。
RECOVER DATABASE UNTIL TIME 'YYYY-MM-DD:HH24:MI:SS',適用誤刪表場景,通常在備用機恢復後匯出導入生產庫。RECOVER DATABASE UNTIL SCN scn_num,精確度更高,需從 X$KTUXE 或 V$ARCHIVED_LOG 獲取 SCN。所有不完全恢復均需 ALTER DATABASE OPEN RESETLOGS,並建議立即做全備份。
CLEAR LOGFILE GROUP n(未歸檔加 UNARCHIVED)。_ALLOW_RESETLOGS_CORRUPTION=TRUE 強制開啟(風險極高,需後續 EXP/IMP 重建)。CREATE CONTROLFILE 重建,需完整列出所有資料檔與重做日誌路徑,或修改 BACKUP CONTROLFILE TO TRACE 生成的腳本。分四種情況:OPEN 狀態下離線恢復/重建表空間;正常關閉無作用事務用 OFFLINE DROP + 重建;異常關閉有作用事務無備份用隱藏參數 _CORRUPTED_ROLLBACK_SEGMENTS 強制開啟;有備份則正常恢復。
直接 OFFLINE DROP → DROP TABLESPACE → 重建臨時表空間並重新指派給用戶,不影響永久資料。