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

Oracle 儲存架構深度解析:物理與邏輯結構完整圖譜

     編輯:Oracle 資料庫基礎

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(恢復)。

二、邏輯儲存結構:資料庫內部的空間階層

四層遞進:資料區塊 → 區段 → 段 → 表空間

  1. 資料區塊:最小 I/O 單位,大小由 DB_BLOCK_SIZE 決定(預設 8KB)
  2. 區段:連續資料區塊集合,空間分配基本單位
  3. 段:同類資料的儲存結構(表段、索引段、Undo 段、暫存段)
  4. 表空間:邏輯儲存頂層容器,對應一或多個資料檔

三、物理與邏輯的映射關係

  • 表空間 ↔ 資料檔:一對多,資料檔不跨表空間
  • 段 ↔ 表空間:一對一,段不跨表空間
  • 區段 ↔ 資料檔:可跨資料檔(大檔案表空間除外)
  • 資料區塊 ↔ 作業系統區塊:建議為 OS 區塊整數倍(如 4KB/8KB/16KB)

結語

物理結構解決「資料存在哪、如何防災」,邏輯結構解決「資料如何組織、如何高效存取」。DBA 需在腦中建立雙層立體模型:向下穿透至檔案系統與儲存陣列,向上指引段空間管理與 SQL 調優。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved