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

Oracle 體系架構全景圖譜:物理/邏輯結構、記憶體、進程、SCN 六大核心維度

     編輯:Oracle 資料庫基礎

Oracle 架構六大支柱系統化總覽

Oracle 體系由物理檔案、邏輯結構、記憶體架構、背景進程、實例概念、SCN 機制六大支柱構成。本文系統梳理各支柱核心組件、職責邊界、交互關係,建立完整的架構心智模型,作為效能調優、故障診斷、架構設計的理論基石。

一、物理結構 (作業系統可見檔案)

二、邏輯結構 (資料庫內部組織)

資料庫
  └─ 表空間
       └─ 段
            └─ 區
                 └─ 塊 (最小 I/O 單位,預設 8KB)
檔案類型功能關鍵特性
控制檔資料庫身分證:名稱/DBID/建立時間/資料檔/日誌檔路徑/檢查點資訊至少 1 個,建議多路複寫 (CONTROL_FILES) 分散不同磁碟
資料檔實際儲存表/索引/LOB 等段資料屬於單一表空間,可自動擴展/手動調整大小
重做日誌檔記錄所有變更 (Redo Entry),支援崩潰恢復/介質恢復/備份組 循環寫入,至少 2 組,建議多成員鏡像
參數檔實例啟動配置 (PFILE 文字/SPFILE 二進位)記憶體大小、進程上限、優化器模式等
歸檔日誌檔已填滿 Redo Log 的離線副本啟用 ARCHIVELOG 模式產生,支援時間點恢復 (PITR)
密碼檔儲存 SYSDBA/SYSOPER 使用者雜湊,支援遠端管理認證ORAPWD 建立,RAC/Data Guard 需同步

三、記憶體架構 (SGA + PGA)

層級說明關鍵點
表空間邏輯容器,群組相關段永久/暫時/UNDO,本地/字典管理,自動/手動區分配
段物件儲存空間 (表段/索引段/LOB段/暫時段/回滾段)跨資料檔非連續,由區組成
區連續塊集合,空間分配單位大小由表空間區管理策略決定
塊最小讀寫單位,對應 OS 區塊整數倍DB_BLOCK_SIZE 建庫時固定,含頁頭/行目錄/行資料/自由空間

關鍵交互:Server Process 讀資料檔 → Buffer Cache (SGA) → 傳回用戶;修改 → Redo Log Buffer (SGA) → LGWR 寫 Redo Log;DBWn 定期將髒塊寫回資料檔。

四、背景進程 (守護實例運行)

區域核心組件共享性生命週期
SGA (System Global Area)Shared Pool / Buffer Cache / Redo Log Buffer / Large Pool / Java Pool / Streams Pool / In-Memory Area所有進程共享實例啟動分配,關閉釋放
PGA (Program Global Area)排序區 / 雜湊區 / 位圖合併區 / 會話資訊 / 游標狀態專用進程私有進程建立分配,終止釋放

五、Oracle 實例

定義:SGA 記憶體結構 + 背景進程集合 = 實例

關鍵特性:

  • 一個實例一次只能掛載/開啟一個資料庫
  • RAC:多實例 (多節點) 共享同一資料庫 (共享儲存)
  • 啟動階段:NOMOUNT (僅實例) → MOUNT (掛載控制檔) → OPEN (開啟資料檔/日誌檔)

六、SCN (System Change Number)

進程職責觸發/頻率
DBWn (Database Writer)將髒塊從 Buffer Cache 寫回資料檔檢查點/滿載/定時/表空間離線
LGWR (Log Writer)將 Redo Log Buffer 寫入線上 Redo LogCommit/1/3 滿/每 3 秒/切換日誌組
CKPT (Checkpoint)更新控制檔/資料檔頁頭檢查點資訊日誌切換/時間間隔/手動
SMON (System Monitor)執行個體恢復/臨時段清理/合併連續自由空間啟動時/定期/空間壓力
PMON (Process Monitor)清理失敗進程資源/釋放鎖/重新註冊 Listener進程異常終止時
ARCn (Archiver)將已滿 Redo Log 組歸檔日誌切換時 (ARCHIVELOG 模式)
RECO (Recoverer)解決分散式交易失敗定期輪詢
MMON/MMNLAWR 快照/閾值告警/統計收集定期/事件驅動

架構交互全景流程

用戶 SQL
   ↓
Server Process (PGA 解析/優化/執行計劃)
   ↓
Shared Pool (Library Cache: 共享游標/執行計劃; Dictionary Cache: 物件定義)
   ↓
Buffer Cache (SGA) ←── DBWn ──→ Datafiles
   ↓                              ↑
Redo Log Buffer (SGA) ←── LGWR ──→ Redo Log Files
   ↓                              ↑
                            ARCn → Archived Logs
   ↓
Commit → LGWR 強制寫入 Redo Log (SCN 推進) → CKPT 更新檢查點
   ↓
查詢一致性:構建 CR 區塊 (Undo + 當前塊) → 返回滿足 SCN 的版本

內化此六維架構模型,將零散知識點掛載至對應支柱,即可在面對效能瓶頸、故障現象、架構決策時,快速定位根因層級、推導影響範圍、制定精準對策。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
屬性說明
本質單調遞增的邏輯時鐘,標識資料庫版本
生成每次 Commit、檢查點、日誌切換、DDL 等遞增
用途一致性讀 (查詢見到 ≤ 查詢 SCN 的版本)、恢復基準 (從 SCN 向前應用 Redo)、分散式交易協調、閃回查詢
查看SELECT current_scn FROM v$database; / DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER