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

Oracle 資料庫架構入門:物理結構、邏輯結構、記憶體與背景進程全景圖

     編輯:Oracle 資料庫基礎

一、物理結構:作業系統層面可見的檔案

檔案類型屬性核心功能
控制檔資料庫檔案記錄 DB 名稱、資料檔/Redo Log 路徑、Checkpoint、歸檔狀態、RMAN 備份資訊。至少 1 個,建議多工 (Multiplex) 放不同磁碟。
資料檔資料庫檔案實際儲存使用者資料、資料字典、索引、Undo、暫存段。決定資料庫容量上限。
重做日志檔資料庫檔案循序記錄所有變更,支援實例/介質恢復。至少 2 組 (Group),每組多成員 (Member) 多工。
參數檔 (PFILE/SPFILE)非資料庫檔案啟動參數:控制檔位置、SGA 大小、優化器模式、歸檔目的地等。
口令檔非資料庫檔案驗證 SYSDBA/SYSOPER 權限遠端連線。
歸檔日志檔資料庫檔案Redo Log 滿切換後的離線副本,介質恢復關鍵。
追蹤檔 / 警示日志資料庫檔案背景進程錯誤堆疊、關鍵事件 (啟動/關閉/切換日志/錯誤) 記錄。

控制檔啟動流程

  1. 讀取參數檔取得控制檔路徑。
  2. 開啟控制檔,讀取資料檔/Redo Log 清單。
  3. 依序開啟各資料檔/Redo Log,完成 MOUNT/OPEN。

二、邏輯結構:資料庫內部儲存層次

Tablespace (表空間) ← 1:N → Datafile (資料檔)
    ↓ 1:N
Segment (段: Table/Index/LOB/Undo/Temp)
    ↓ 1:N
Extent (區/盤區)
    ↓ 1:N
Block (區塊/塊) — 最小 I/O 單位,建庫時指定 (預設 8KB)
  • 表空間:邏輯容器,跨檔案擴展。
  • 段:物件儲存實體 (Table Segment, Index Segment, Undo Segment, Temp Segment)。
  • 區:連續區塊集合,避免碎片。LMT (Locally Managed Tablespace) 自動管理。
  • 塊:OS Block 整數倍,所有存取以塊為單位。

三、記憶體架構

區域共享性核心組件
SGA (System Global Area)所有進程共享Shared Pool (Library Cache, Dictionary Cache)、Database Buffer Cache、Redo Log Buffer、Large Pool、Java Pool、Streams Pool、In-Memory Area
PGA (Program Global Area)單一進程專用Sort Area、Hash Area、Session Info、Cursor State。建立於進程啟動,終止時釋放。

四、背景進程核心清單

五、SCN (System Change Number)

單調遞增的全域時鐘,每次 Commit 推進。核心用途:

  • 資料一致性讀取基準 (Consistent Read)。
  • 恢復/閃回定位點。
  • 分散式交易協調。

結語

掌握「物理檔案 ↔ 邏輯結構 ↔ 記憶體 ↔ 進程」四層對應關係,是 Oracle DBA 進階的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
進程縮寫職責
Database WriterDBWn將髒塊從 Buffer Cache 寫入資料檔 (LRU/Checkpoint/Truncate 觸發)。
Log WriterLGWR將 Redo Log Buffer 寫入線上 Redo Log 檔 (Commit/1/3MB/Timeout 觸發)。
System MonitorSMON實例恢復、臨時段清理、空間合併。
Process MonitorPMON清理失敗進程資源、釋放鎖、重註冊 Listener。
CheckpointCKPT更新控制檔/資料檔表頭 Checkpoint 資訊,減輕 LGWR 負擔 (大量資料檔時啟用)。
ArchiverARCn歸檔模式下將滿的 Redo Log Group 複製至歸檔目的地。
RecovererRECO解決分散式交易失敗。