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

Oracle 物理結構全景圖:資料檔、重做日誌檔、控制檔深度解析

     編輯:Oracle 資料庫基礎

三大核心物理檔案

Oracle 資料庫的物理結構僅由三類檔案構成,掌握它們的角色與交互關係,是備份恢復、效能調校、架構設計的基石。

1. 資料檔

  • 角色:儲存所有使用者資料與資料字典(邏輯物件如表、索引的物理載體)。
  • 特徵:
    • 一個資料檔僅屬於一個資料庫。
    • 建立後無法縮小(12c+ 可 ALTER DATABASE DATAFILE ... RESIZE 縮小,但受 HWM 限制)。
    • 一個表空間 = 一或多個資料檔。
  • 讀寫機制:
    • 讀取:缺頁時由 Server Process 從資料檔載入緩衝區快取 (Buffer Cache)。
    • 寫入:修改先在記憶體完成,由 DBWn 背景進程批次、非同步刷回資料檔,減少 I/O 呼叫。

2. 重做日誌檔

  • 角色:循序記錄所有資料變更(Insert/Update/Delete/DDL),是恢復的核心。
  • 架構:
    • 至少 2 個日誌組,每組可多路徑鏡像。
    • 循環覆寫:LGWR 寫滿當前組 → Log Switch → 切換下一組。
  • 保護機制:
    • 鏡像日誌:多磁碟冗余,防單點故障。
    • 故障恢復:Instance Recovery 自動掃描 Redo 將未寫入資料檔的變更重演。
  • 歸檔模式:啟用 ARCHIVELOG 後,ARCN 將非當前組封存為歸檔日誌,支援時間點恢復 (PITR) 與 Data Guard。

3. 控制檔

  • 角色:資料庫的「身分證與地圖」,記錄物理結構元資料:
    • 資料庫名稱、建立時間。
    • 所有資料檔、重做日誌檔的路徑與狀態。
    • Checkpoint SCN、RMAN 備份元資料。
  • 高可用:強制多路徑鏡像 (CONTROL_FILES 參數指定多路徑)。
  • 生命週期:
    • 啟動階段:NOMOUNT → 讀取控制檔 → MOUNT → 打開資料檔/日誌檔 → OPEN。
    • 結構變更(加檔、Drop Tablespace 等)自動更新控制檔。

三者協同工作流

  1. 用戶提交交易 → Server Process 產生 Redo Vector 寫入 Log Buffer。
  2. Commit → LGWR 強制刷新 Log Buffer 到線上日誌檔(持久化)。
  3. DBWn 依 Checkpoint 排程將髒塊刷入資料檔。
  4. 控制檔同步記錄最新 Checkpoint SCN、檔案狀態。

運維關鍵點

  • 多路徑鏡像控制檔與重做日誌組,放置於不同磁碟/儲存陣列。
  • 啟用 ARCHIVELOG 並監控歸檔目的地空間。
  • 定期 RMAN VALIDATE 驗證物理檔案完整性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved