三大核心物理檔案
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 等)自動更新控制檔。
三者協同工作流
- 用戶提交交易 → Server Process 產生 Redo Vector 寫入 Log Buffer。
- Commit → LGWR 強制刷新 Log Buffer 到線上日誌檔(持久化)。
- DBWn 依 Checkpoint 排程將髒塊刷入資料檔。
- 控制檔同步記錄最新 Checkpoint SCN、檔案狀態。
運維關鍵點
- 多路徑鏡像控制檔與重做日誌組,放置於不同磁碟/儲存陣列。
- 啟用
ARCHIVELOG 並監控歸檔目的地空間。
- 定期
RMAN VALIDATE 驗證物理檔案完整性。