| 狀態 | 特徵 | 可執行操作 |
|---|---|---|
| NOMOUNT | 讀取參數檔、初始化 SGA、啟動背景進程 | 建立資料庫、恢復控制檔 |
| MOUNT | 讀取控制檔、獲取物理結構資訊 | 資料檔更名、Redo 管理、Archive 模式切換、備份控制檔 |
| OPEN | 檢查所有檔案同一 SCN、前滾恢復、回滾未提交、接受用戶 | 正常服務、線上備份、匯入匯出 |
核心原則:只能在備份之上**應用 Redo 前滾**,不能將當前資料庫**反向回滾**到過去。例:1/1 備份 → 5/1 發現錯誤想回 4/30,必須還原 1/1 備份 + 應用 Redo 至 4/30,不可直接回滾 5/1 資料。
| 故障類型 | 特徵 | 恢復責任 | 關鍵動作 |
|---|---|---|---|
| SQL 陳述式失敗 | 單條 SQL 錯誤 (語法、空間、權限) | Oracle 自動 | 回滾該陳述式、釋放鎖、返回錯誤碼 |
| 執行緒/進程失敗 | 用戶進程異常終止 | Oracle 自動 (PMON) | 清理資源、回滾交易、釋放鎖 |
| 實例失敗 | 實例崩潰/強制關閉 | Oracle 自動 (SMON) | Instance Recovery:前滾 Redo、回滾未提交 |
| 用戶操作失敗 | 誤刪/誤改/誤截斷 | DBA 人工 | IMP 邏輯備份還原 / 不完全恢復 / TSPITR / LogMiner 反向 SQL |
| 介質/儲存失效 | 磁碟/控制器/陣列損壞 | DBA 人工 | Media Recovery:還原備份 + 應用 Redo (完整/不完全) |
IMP 導入最近 EXP 檔,適合小範圍、發現及時Oracle 檔案分類決定恢復路徑:
-- 1. 確認損壞檔案類型與範圍 -- 2. 還原對應備份 (資料檔/控制檔) -- 3. 掛載資料庫 STARTUP MOUNT; -- 4. 執行恢復 RECOVER DATABASE; -- 完全恢復 RECOVER DATABASE UNTIL TIME '2024-01-15:10:00:00'; -- 不完全恢復 (時間) RECOVER DATABASE UNTIL CHANGE 12345678; -- 不完全恢復 (SCN) RECOVER TABLESPACE users; -- 表空間級恢復 RECOVER DATAFILE '/u01/oradata/users01.dbf'; -- 檔案級恢復 -- 5. 開啟資料庫 ALTER DATABASE OPEN; -- 完全恢復 ALTER DATABASE OPEN RESETLOGS; -- 不完全恢復 (必須 RESETLOGS)
災難恢復的成敗,90% 決定於平時的備份質量與演練深度。建立分類故障對應的標準化 Runbook,讓團隊在風暴中依然能按圖索驥、精準止血、最小化損失。