Oracle 儲存架構分為物理儲存結構與邏輯儲存結構兩大維度。理解兩者映射關係,是掌握資料庫空間管理、備份恢復、效能調優的基石。本文系統梳理八大物理檔案類型與四層邏輯階層,並詳解各組件功能與關鍵特性。
一、物理儲存結構:作業系統可見的檔案實體
核心三大檔案:資料檔、線上重做日誌檔、控制檔。輔助檔案:歸檔日誌、參數檔、警示日誌、追蹤檔、備份檔。
1. 資料檔 — 資料的實際倉庫
- 一資料庫可含多資料檔;一資料檔屬於單一資料庫與單一表空間
- 支援自動擴展
- 資料庫物件(表、索引)物理上儲存於資料檔
- 查詢時若資料不在記憶體,Oracle 讀取對應資料檔載入記憶體
2. 控制檔 — 資料庫的「身分證」與「地圖」
- 資料庫至少一個,強烈建議多路徑鏡像
- 記錄關鍵物理結構資訊:
- 資料庫名稱
- 資料檔與線上重做日誌檔名稱及路徑
- 資料庫建立時間戳
- 啟動時 Oracle 依控制檔資訊開啟資料檔與日誌檔
- 單一控制檔損壞不導致資料遺失(前提是鏡像完整)
3. 線上重做日誌檔 — 交易的「黑盒子」
- 包含重做記錄,記錄資料庫所有變更
- 作用:執行個體故障(如斷電)導致記憶體資料未寫入資料檔時,Oracle 依重做記錄執行執行個體恢復,將資料庫恢復至故障前一致狀態
- 多組(Group)多成員(Member)機制保障高可用
4. 歸檔日誌檔
線上重做日誌的離線副本,記錄資料庫變更完整歷史,支援介質恢復與時間點恢復,是備份策略核心。
5. 參數檔
- 初始化參數檔:文字檔,啟動時讀取配置 SGA 與後台進程
- 伺服器參數檔 (SPFILE):二進位檔,支援動態修改持久化
6. 警示日誌檔
- 路徑:
BACKGROUND_DUMP_DEST 參數指定
- 命名:
alert_SID.log
- 依時間序記錄重大活動(啟動/關閉、切換日誌、檢查點)與錯誤(ORA-00600、死鎖、空間不足)
- DBA 日常巡檢首要閱讀對象
7. 追蹤檔
- 每個伺服器進程與後台進程各自寫入
- 用戶進程錯誤 →
USER_DUMP_DEST;後台進程錯誤 → BACKGROUND_DUMP_DEST
- 含詳細錯誤堆疊、SQL 追蹤、事件 10046 追蹤輸出
- 可用
MAX_DUMP_FILE_SIZE 限制大小,定期手動清理
8. 備份檔
RMAN 備份集、影像副本、Data Pump 匯出檔等,用於介質故障時的 RESTORE(還原)與 RECOVER(恢復)。
二、邏輯儲存結構:資料庫內部的空間階層
四層遞進:資料區塊 → 區段 → 段 → 表空間
- 資料區塊:最小 I/O 單位,大小由
DB_BLOCK_SIZE 決定(預設 8KB)
- 區段:連續資料區塊集合,空間分配基本單位
- 段:同類資料的儲存結構(表段、索引段、Undo 段、暫存段)
- 表空間:邏輯儲存頂層容器,對應一或多個資料檔
三、物理與邏輯的映射關係
- 表空間 ↔ 資料檔:一對多,資料檔不跨表空間
- 段 ↔ 表空間:一對一,段不跨表空間
- 區段 ↔ 資料檔:可跨資料檔(大檔案表空間除外)
- 資料區塊 ↔ 作業系統區塊:建議為 OS 區塊整數倍(如 4KB/8KB/16KB)
結語
物理結構解決「資料存在哪、如何防災」,邏輯結構解決「資料如何組織、如何高效存取」。DBA 需在腦中建立雙層立體模型:向下穿透至檔案系統與儲存陣列,向上指引段空間管理與 SQL 調優。