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

Oracle 數據庫架構核心解析:實例與數據庫、內存結構、後台進程、邏輯存儲層次全景圖

     編輯:Oracle 資料庫相關知識

核心概念:實例 vs 數據庫

Oracle Database(數據庫) = 物理文件集合:數據文件、控制文件、重做日志、參數文件、口令文件、歸檔日志

Oracle Instance(實例) = 內存結構 + 後台進程

關鍵區別:數據庫是靜態持久化存儲,實例是動態運行實體。**一個數據庫可被多個實例掛載(RAC),一個實例同一時刻只能掛載一個數據庫。**

實例內存架構(SGA + PGA)

系統全局區域

SGA (System Global Area)
├── Shared Pool (共享池)
│   ├── Library Cache (庫緩存) - SQL/PLSQL 解析樹、執行計劃
│   └── Data Dictionary Cache (字典緩存) - 表/列/索引/用戶等元數據
├── Database Buffer Cache (數據庫緩存區) - 數據塊副本,LRU 算法管理
├── Redo Log Buffer (重做日志緩存) - 變更向量,順序寫入,提交時刷盤
├── Large Pool (大池) - 並行查詢、RMAN、共享服務器分配
├── Java Pool - Java 代碼/數據
├── Streams Pool - Streams 複製數據
└── In-Memory Area (12c+) - 列式內存存儲

程序全局區域

PGA (Program Global Area) - 每個服務器進程私有
├── Session Memory - 會話狀態、游標狀態
├── Sort Area - 排序操作內存(ORDER BY, GROUP BY)
├── Hash Area - 雜湊連接構建雜湊表
├── Bitmap Merge Area - 位圖索引合並
└── SQL Work Area - 執行計劃操作符工作區

關鍵參數與監控

組件參數動態調整監控視圖
Shared PoolSHARED_POOL_SIZE是V$SGASTAT, V$LIBRARYCACHE
Buffer CacheDB_CACHE_SIZE是V$BH, V$DB_CACHE_ADVICE
Redo Log BufferLOG_BUFFER否(需重啟)V$SGASTAT
PGA 總量PGA_AGGREGATE_TARGET是V$PGASTAT, V$SQL_WORKAREA

後台進程架構

核心必選進程

進程全稱核心職責異常影響
PMONProcess Monitor清理失敗進程資源、釋放鎖、回滾未提交事務、註冊服務實例掛起,需重啟
SMONSystem Monitor實例恢復、臨時段清理、碎片合並、死事務回滾啟動慢,臨時表空間耗盡
DBWnDatabase Writer將髒塊從 Buffer Cache 寫入數據文件(检查點、LRU 末端、表空間離線)緩存命中率降、檢查點不完整
LGWRLog Writer將 Redo Log Buffer 寫入在線重做日志文件(提交、1/3滿、1MB、每3秒、DBWn寫前)數據丟失風險、提交延遲
CKPTCheckpoint更新數據文件頭/控制文件檢查點 SCN,指導 DBWn 寫入範圍恢復時間不可控

輔助進程

  • ARCn:歸檔進程,將已填滿的在線日志複製到歸檔目標
  • RECO:分布式事務恢復,解決雙階段提交失敗
  • MMON/MMNL:自動工作負載儲存庫(AWR)收集、閾值告警
  • SMCO:空間管理協調,段縮小、自動擴展
  • VKTM:虛擬時間保持,高精度時間源

邏輯存儲層次

Tablespace (表空間) - 最大邏輯單位,屬於單一數據庫
    │
    ├── Segment (段) - 對象存儲空間(表段、索引段、LOB段、回滾段、臨時段)
    │       │
    │       ├── Extent (區) - 連續塊集合,最小分配單位
    │       │       │
    │       │       └── Block (塊/頁) - Oracle I/O 最小單位(默認 8KB)
    │       │
    │       └── Freelist / Bitmap - 空閒空間管理
    │
    └── Datafile (數據文件) - 物理文件,一個表空間可含多個

塊大小選擇指南

塊大小適用場景權衡
2KB/4KBOLTP 高並發、小行、隨機訪問元數據開銷大,索引層次深
8KB (默認)通用、混合負載平衡選擇
16KB/32KBDSS/數倉、大行、順序掃描、LOB緩存利用率低,小行浪費空間

客戶端連接架構

用戶進程 → 網絡層 (TNS/TCP) → 監聽器 → 
  ├── 專用服務器模式:每用戶一個服務器進程 (PGA 獨立)
  └── 共享服務器模式:調度器 + 共享服務器池 (PGA 部分共享到 SGA)

關鍵文件職能速查

文件類型作用冗余建議
Datafile存儲表/索引/LOB 等業務數據RAID 1/5/10 + ASM 正常/高冗余
Controlfile記錄數據庫物理結構、檢查點、RMAN 元數據至少 3 路鏡像,不同磁盤控制器
Redo Log順序記錄所有變更,保障事務持久性多組多成員,分離存儲
Parameter File實例啟動參數 (SPFILE/PFILE)SPFILE 放共享存儲/ASM
Password FileSYSOPER/SYSDBA 遠程認證Data Guard 環境必須同步
Archived Log歷史重做日志,介質恢復/備份/DP 基石FRA 自動管理 + 異地傳輸

架構演進關鍵節點

  • 8i:引入 PGA_AGGREGATE_TARGET 自動內存管理
  • 9i:RAC、SGA 動態調整、自動 UNDO 管理
  • 10g:ASM、ADDM/ASH/AWR、自動內存管理 (MEMORY_TARGET)
  • 11g:結果緩存、自適應游標共享、In-Memory 奠基
  • 12c:多租戶 (CDB/PDB)、In-Memory Column Store、JSON 支持
  • 19c/21c:長期支持版、自治數據庫、區塊鏈表、原生機器學習
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved