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

Oracle 架構基礎知識全景圖:物理/邏輯/記憶體/進程/SCN

     編輯:Oracle 資料庫相關知識

學習 Oracle,先建立架構全景認知

掌握 Oracle 框架,才能高屋建瓴理解各組件交互。核心五大維度:

一、物理結構:磁碟上的實體檔案

檔案類型屬性核心功能
控制檔資料庫檔案維護完整性資訊:DB 名、表空間/資料檔/Redo Log 路徑、Checkpoint、Log Sequence、Archive 狀態
資料檔儲存實際資料(字典、使用者資料、索引、暫存等),按類型分散不同磁碟提升效能
重做日誌檔記錄所有變更,支援故障恢復,至少 2 組多路徑
追蹤/警示檔背景進程事件記錄、資料庫訊息與錯誤同步記錄
參數檔非資料庫檔案實例配置:控制檔位置、SGA 大小、優化器模式等;指定控制檔與 Archive 目的地
密碼檔認證 SYSDBA/SYSOPER 特權用戶
歸檔檔資料庫檔案Redo Log 離線副本,媒體恢復必備

控制檔啟動流程

  1. 讀取參數檔獲取控制檔路徑
  2. 開啟控制檔
  3. 從控制檔讀取資料檔清單並逐一開啟

二、邏輯結構:儲存層次

表空間  ←  一組資料檔的邏輯集合
   ↓
段      ←  物件佔用空間(表段、索引段、回滾段、暫存段)
   ↓
區      ←  一次性分配的連續空間(1+ 區塊)
   ↓
塊      ←  Oracle 最小 I/O 單位,建庫時指定 (DB_BLOCK_SIZE)

三、記憶體架構:SGA 與 PGA

四、背景進程:資料庫引擎的心跳

區域特性核心組件
SGA (System Global Area)所有進程共享,實體記憶體不足寫入虛擬記憶體Shared Pool、DB Buffer Cache、Redo Log Buffer、Large Pool、Java Pool、Streams Pool
PGA (Program Global Area)單一進程專用,建立時分配、終止時回收排序區、雜湊區、游標狀態、Session 資訊
進程縮寫核心職責
Database WriterDBWn將髒緩衝區寫入資料檔(LRU/Checkpoint/Timeout 觸發)
Log WriterLGWR將 Redo Log Buffer 寫入線上 Redo Log(Commit/1/3 MB/Timeout 觸發)
System MonitorSMON執行執行個體恢復、整理暫存段、合併自由空間
Process MonitorPMON清理失敗進程資源、釋放鎖、註冊監聽器
CheckpointCKPTCheckpoint 時更新控制檔/資料檔標頭,分攤 LGWR 壓力(大量資料檔時啟用)
ArchiverARCnLog Switch 時歸檔滿的 Redo Log 組
RecovererRECO解決分散式交易未決狀態
Dispatcher/ServerDnnn/Snnn共用伺服器/專用伺服器架構下的用戶服務進程

五、SCN (System Change Number):時序與一致性的核心

  • 系統內部維護的單調遞增序號
  • 每次 Commit、Checkpoint、Log Switch 推進 SCN
  • 核心用途:
    • 讀一致性判斷(查詢只看 SCN < 查詢起始 SCN 的版本)
    • 恢復時序基準(Redo 按 SCN 順序應用)
    • 分散式交易全域排序
    • 閃回查詢/資料庫的時間基準

架構圖譜速記

實例 (Instance) = SGA + 背景進程
資料庫 (Database) = 物理檔案集合
實例掛載/開啟資料庫 → 可服務用戶
一個資料庫可被多實例掛載 (RAC)
一個實例同一時間只能開啟一個資料庫

建立這張架構全景圖,後續學習備份恢復、效能調優、RAC、Data Guard 等進階主題時,都能精準定位組件邊界與交互機制,事半功倍。

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