首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 恢復架構深度解析:Instance、Database、Tablespace、Datafile、Redo、Control File 全景視角

     編輯:Oracle 資料庫基礎

恢復架構的兩大支柱

Oracle Server = Instance (記憶體+背景進程) + Database (OS 檔案集合)。備份恢復策略完全取決於兩者的狀態與日誌模式。

1. Instance 架構與狀態檢查

  • SGA 組件:Buffer Cache、Shared Pool、Redo Log Buffer、Large Pool、Java Pool、Streams Pool。
  • 關鍵背景進程:SMON、PMON、DBWn、LGWR、CKPT、ARCn、MMAN…
  • 狀態驗證:
    SELECT instance_name, host_name, status FROM v$instance;
    -- status: STARTED/MOUNTED/OPEN
  • 錯誤代碼對照:
    • ORA-01034:Instance 未啟動。
    • ORA-01033:Instance 啟動/關閉進行中,資料庫未 OPEN。

2. Database 物理檔案組成

  • RMAN 配置備份、定期導出
  • 檔案類型用途備份關注點
    Datafiles (.dbf)儲存系統/使用者/Undo 資料RMAN Image Copy / Backup Set
    Control Files (.ctl)記錄物理結構映射多路徑鏡像、RMAN 自動備份
    Online Redo Logs (.log)循序記錄所有變更多路徑鏡像、歸檔前不可備份
    Archived Redo Logs (.arc)歷史 Redo 記錄PITR 核心、Data Guard 傳輸源
    Parameter File (spfile/pfile)啟動參數
    Password FileSYSDBA/SYSOPER 驗證Data Guard 同步需一致

    3. Tablespace 視角的恢復策略差異

    • SYSTEM / SYSAUX / UNDO:必須在 MOUNT 狀態恢復(資料庫關閉)。
    • 使用者資料表空間:可在 OPEN 狀態線上恢復 (Online Tablespace Recovery)。
    • TEMP:無需恢復,重建即可。
    • 查詢:SELECT * FROM dba_tablespaces;

    4. Datafile 動態視圖與損壞診斷

    • V$DATAFILE:資訊來源 = Control File,反映資料庫「認為」的檔案狀態與 Checkpoint SCN。
    • V$DATAFILE_HEADER:資訊來源 = Datafile Header,反映檔案實際磁碟狀態與 Checkpoint SCN。
    • 一致性判斷:正常情況下兩視圖 SCN 相同;若 Header SCN < Control File SCN → 檔案落後需媒體恢復;若 Header 損壞無法讀取 → 需從備份還原並應用 Redo。

    5. Redo Log Groups 與 Threads

    • 單實例:單 Thread,每 Thread ≥ 2 Groups。
    • RAC:多 Thread,每 Instance 一 Thread。
    • 監控:SELECT group#, thread#, sequence#, bytes, status FROM v$log;

    6. Control File 與 Instance-Database 綁定

    • 啟動參數 CONTROL_FILES 指定路徑(多路徑鏡像)。
    • MOUNT 階段讀取 Control File 獲取 Datafile/Redo 路徑並打開。
    • 查詢:SELECT name FROM v$controlfile;

    7. 歸檔日誌:完整恢復的基石

    • 僅 ARCHIVELOG 模式產生。
    • Log Switch 觸發 ARCn 自動複製至 LOG_ARCHIVE_DEST_n。
    • 備份策略核心:Datafile Copy + Archived Redo = 任意時間點恢復。

    總結:制定恢復策略的決策樹

    1. 確認 V$DATABASE.LOG_MODE (ARCHIVELOG/NOARCHIVELOG)。
    2. 依 RPO/RTO 選擇:冷備份 / 熱備份 (RMAN) / Data Guard / Flashback。
    3. 針對關鍵表空間規劃差異化恢復演練(MOUNT vs ONLINE)。
    4. 定期 RMAN VALIDATE、RECOVER ... TEST 驗證可恢復性。
    1. 上一篇文章:
    2. 下一篇文章:
    Copyright © 程式碼之家 All Rights Reserved