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

Oracle 架構入門(二):物理/邏輯結構、記憶體與進程全景圖

     編輯:Oracle 資料庫基礎

一、物理結構:六大檔案奠基

檔案類型核心功能關鍵特性
控制檔維護資料庫完整性資訊,識別資料檔與 Redo Log至少 1 個,建議多路徑多工
資料檔實際儲存資料屬於某表空間,不可跨表空間
重做日誌檔記錄所有資料庫變更,支援故障恢復至少 2 組,循環寫入
參數檔定義 Instance 特性(SGA 大小等)PFILE/SPFILE 兩種形式
歸檔檔Redo Log 的離線副本,媒體恢復關鍵啟用 ARCHIVELOG 模式後產生
密碼檔認證具備 SYSDBA/SYSOPER 權限的用戶啟用遠程管理所需

二、邏輯結構:四層儲存階梯

  1. 表空間:邏輯儲存單位,由一組資料檔組成
  2. 段:物件在資料庫中佔用的空間(表段、索引段、回滾段、臨時段)
  3. 區:一次性分配的連續空間單位,由多個區塊組成
  4. 區塊:Oracle 最小 I/O 單位,建庫時指定(如 8K)

關係:表空間 → 段 → 區 → 區塊

三、記憶體架構:SGA 與 PGA 雙核心

SGA (System Global Area)

  • 所有資料庫進程共享的記憶體區域
  • 包含:共用池、資料庫緩衝區、Redo Log 緩衝區、大池、Java 池、串流池等
  • 實體記憶體不足時會使用虛擬記憶體(影響效能)

PGA (Program Global Area)

  • 單一進程專用記憶體(排序、雜湊、游標資訊)
  • 進程建立時分配,終止時回收
  • 專用伺服器模式下每個用戶進程一個 PGA;共用伺服器模式下部分資訊移至 SGA

四、後台進程:七大守護者

進程職責
DBWn (Database Writer)將髒緩衝區寫入資料檔
LGWR (Log Writer)將 Redo Log Buffer 寫入線上 Redo Log
SMON (System Monitor)啟動時執行實例恢復、清理臨時段、合併自由空間
PMON (Process Monitor)清理失敗進程資源、釋放鎖、重新註冊服務
CKPT (Checkpoint)定期更新控制檔與資料檔檢查點資訊,加速恢復
ARCn (Archiver)日誌切換時將滿載 Redo Log 歸檔
RECO (Recoverer)解決分散式交易失敗

此外尚有用戶進程(客戶端發送 SQL)與伺服器進程(處理請求、回傳結果),專用/共用模式決定對應關係。

五、核心概念:Instance 與 SCN

  • Oracle Instance = SGA + 後台進程。一個 Instance 一次只能掛載/開啟一個資料庫。
  • SCN (System Change Number):系統內部維護的遞增序號,是資料一致性與順序恢復的核心基準。每次提交交易、檢查點、日誌切換都會推進 SCN。

六、深入學習路徑建議

DBA 方向

  1. 考取 OCP 建立系統知識體系
  2. 研讀 Oracle Concepts 與官方線上文件
  3. 專題深鑽:RMAN、RAC、Statspack/AWR、Data Guard、SQL Tuning、備份恢復

開發方向

  1. 精通 PL/SQL:SQL 優化、內建函數、預存程序/函數/觸發器/套件
  2. 掌握開發工具:Oracle Developer Suite (Forms/Reports) 或現代替代方案

架構理解是所有進階技能的基石,建議初學者先構建完整心智模型,再按角色深耕。

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