首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 核心架構圖解:資料庫結構、記憶體結構、進程架構、實例管理、緩衝區狀態機

     編輯:Oracle 資料庫相關知識

掌握 Oracle 內部架構是效能調優、故障診斷、架構設計的基石。本文彙整五大核心架構圖解:邏輯/物理資料庫結構、SGA/PGA 記憶體結構、前景/背景進程架構、實例啟動階段與背景進程職責、資料庫緩衝區四狀態轉換機制。

一、資料庫邏輯與物理結構

資料庫結構圖

  • 邏輯結構:Tablespace → Segment → Extent → Block
  • 物理結構:Datafiles、Control Files、Redo Log Files、Parameter File、Password File
  • 關鍵映射:一個 Tablespace 可跨多個 Datafile;一個 Segment (Table/Index) 佔用一或多個 Extent

二、Oracle 記憶體結構 (SGA + PGA)

記憶體結構圖

區域核心組件功能
SGA (共享)Database Buffer Cache資料塊副本 (Dirty/Clean/Free)
Redo Log BufferRedo 向量,LGWR 寫入線上日誌
Shared PoolLibrary Cache (SQL/PLAN)、Dictionary Cache、Result Cache
Large Pool備份/還原、共享伺服器 UGA、平行執行訊息
Java Pool / Streams PoolJava 物件、Streams 佇列
PGA (私有)Sort Area排序、雜湊連接、位圖建立
Hash Area雜湊連接建構
Session Info游標狀態、PL/SQL 執行上下文

三、進程架構

進程結構圖

類型進程職責
前景進程User Process客戶端工具 (sqlplus, JDBC, OCI) 發起請求
Server Process處理 SQL 解析/執行/擷取,專用/共享模式
背景進程DBWn (Database Writer)將 Dirty Buffer 寫入 Datafile (LRU/Checkpoint/Truncate 觸發)
LGWR (Log Writer)將 Redo Log Buffer 寫入線上日誌 (Commit/1/3MB/Timeout 觸發)
CKPT (Checkpoint)更新 Datafile/Controlfile 標記檢查點位置,通知 DBWn
SMON (System Monitor)執行個體恢復、臨時段清理、合併可用空間
PMON (Process Monitor)失敗進程清理、釋放鎖、釋放 SGA 資源、重新註冊 Listener
ARCn (Archiver)線上日誌切換時複製至歸檔目的地
RECO (Recoverer)分散式事務自動解決
MMON/MMNL自動負載儲存庫 (AWR) 統計收集、閾值告警

四、實例啟動階段與管理

實例管理圖

  1. NOMOUNT:啟動背景進程、分配 SGA,讀取 Parameter File
  2. MOUNT:讀取 Control File,掛載資料庫 (僅元資料)
  3. OPEN:開啟 Datafile/Redo Log,允許用戶連線

關鍵背景進程職責 (同上表)

五、Server Process 與 Buffer Cache 交互流程

緩衝區高速緩存圖

  1. Server Process 在 Buffer Cache 尋找資料塊
  2. 未找到 (Cache Miss) → 從 Datafile 讀取塊至 Cache (Physical Read)
  3. 找到 (Cache Hit) → 直接在記憶體操作 (Logical Read / Consistent Get)
  4. 修改塊 → 標記為 Dirty,產生 Redo 向量
  5. DBWn 依 LRU/Checkpoint 將 Dirty Buffer 寫回磁碟

六、Buffer Cache 四大狀態機

狀態含義可被淘汰觸發條件
Pinned (已連接)正被 Session 修改,防止併發寫入衝突否DML 執行中
Clean (乾淨)內容與磁碟同步,或為 CR 快照是 (優先)Commit 後、Checkpoint 後、Consistent Read 建構
Free/Unused (空閒/未使用)實例啟動初期,或從未載入資料是實例啟動、縮減 SGA
Dirty (髒數據)內容已修改,未寫回磁碟否 (需 DBWn 先寫入)DML 修改後、尚未 Checkpoint

淘汰演算法:LRU (Least Recently Used) + Touch Count,優先淘汰 Clean/Free,Dirty 必須先寫入才能淘汰。

這五大架構圖是 Oracle 內核知識體系的骨架,建議收藏並定期回顧,將抽象概念與具體調優動作 (如調整 DB_CACHE_SIZE、分析 V$BH 狀態、優化 Checkpoint 頻率) 建立強關聯。

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