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

Oracle架構基礎知識體系:物理/邏輯/內存/進程/SCN五大核心支柱

     編輯:Oracle 資料庫相關知識

前言:構建Oracle內核心智模型

學習Oracle如同學習作戰系統:必須先理解「裝備結構(物理)」、「作戰單元(邏輯)」、「指揮中樞(內存)」、「執行部隊(進程)」、「時空基準(SCN)」五大支柱,才能在故障排查、性能調優、架構設計中做到「高屋建瓴、精準打擊」。

一、物理結構:持久化層的六大文件族群

文件類型核心作用屬性分類關鍵特征
控制文件數據庫「身份證+地圖」:記錄DB名、文件路徑、Redo位置、檢查點、歸檔狀態數據庫文件至少1個,建議3路鏡像分佈不同磁盤;二進制格式,不可人工編輯
數據文件業務數據持久化容器:表、索引、LOB、臨時段等數據庫文件按用途分類:系統/用戶/Undo/臨時/索引;大小受限於OS/塊大小
Redo日志文件事務重做記錄:保證ACID中Durability,實例恢復核心數據庫文件至少2組,循環寫入;組內多成員鏡像;LGWR順序寫入
參數文件實例啟動配置:SGA大小、文件路徑、優化器模式、進程數等非數據庫文件PFILE(文本) / SPFILE(二進制,支持動態修改持久化)
密碼文件遠程管理認證:SYSOPER/SYSDBA權限驗證非數據庫文件orapwd創建;REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE/SHARED
歸檔日志/跟蹤/告警Redo離線副本/進程診斷/實例級事件日誌數據庫文件/診斷文件歸檔模式下產生;告警日誌alert_SID.log為核心運維視窗

二、邏輯結構:空間管理的四層金字塔

表空間 Tablespace
  └─ 段 Segment (表、索引、LOB、Undo、臨時)
       └─ 區 Extent (連續塊集合,最小分配單元)
            └─ 塊 Block (Oracle I/O最小單位,2K/4K/8K/16K/32K)

關鍵約束規則

  • 1表空間 = 1個或多個數據文件;1數據文件屬於1表空間;
  • 1段屬於1表空間,可跨多數據文件;1區屬於1數據文件,不可跨文件;
  • PCTFREE + PCTUSED ≤ 100(避免空間計算邏輯衝突);
  • 單事務綁定1個Undo段,不可跨段;
  • 索引表不存ROWID(Heap表索引存ROWID,IOT除外)。

三、內存架構:SGA與PGA的分工協作

維度SGA (System Global Area)PGA (Program Global Area)
共享性所有服務器/後台進程共享專用於單個進程(服務器/後台)
生命週期實例啟動分配,關閉釋放進程創建分配,終止釋放
核心組件Database Buffer Cache、Redo Log Buffer、Shared Pool、Large Pool、Java Pool、Streams Pool、In-Memory AreaPrivate SQL Area、Session Memory、Sort/Hash Area、Bitmap Merge Area
管理模式手動/自動 (ASMM/AMM)自動 (PGA_AGGREGATE_TARGET/LIMIT)
典型佔比60-80% 總內存20-40% 總內存

核心背景進程(Background Processes)

進程全稱核心職責關鍵觸發條件
DBWnDatabase Writer髒塊刷盤:LRU末端、檢查點、表空間離線、CheckpointLRU掃描發現髒塊、Checkpoint、表空間OFFLINE
LGWRLog WriterRedo緩衝區順序寫入在線Redo日志,保證事務持久化事務提交、1/3滿、3MB積累、3秒超時、Checkpoint
SMONSystem Monitor實例恢復(前滾/回滾)、臨時段清理、空間合併實例啟動MOUNT階段、定期喚醒
PMONProcess Monitor進程失敗清理:釋放鎖、回滾事務、釋放SGA/PGA資源用戶進程異常終止
CKPTCheckpoint更新控制文件/數據文件檢查點信息,分離LGWR寫入職責CHECKPOINT_PROCESS=TRUE、高檢查點頻率場景
ARCnArchiverRedo日志切換時歸檔至備份位置歸檔模式+日志切換
RECORecoverer分布式事務失敗自動恢復雙階段提交失敗

四、SCN (System Change Number):時空統一基準

  • 本質: 全局遞增序列號,標記數據庫邏輯時間點;
  • 推進時機: 事務提交、檢查點、日志切換、DDL執行;
  • 核心用途:
    1. 讀一致性:查詢見SCN ≤ 啟動SCN的數據版本;
    2. 實例恢復:前滾至目標SCN,回滾未提交事務;
    3. 備份恢復:RMAN增量備份基於SCN範圍;
    4. Data Guard:主備同步進度以SCN衡量。
  • 查看: SELECT CURRENT_SCN FROM V$DATABASE; / DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER。

五、實例與數據庫關係:1:N還是1:1?

  • 單實例: 1實例 : 1數據庫(獨佔掛載打開);
  • RAC (OPS): N實例 : 1數據庫(共享存儲,並行掛載打開);
  • 多租戶 (12c+): 1實例(CDB) : 1容器數據庫 + N可插拔數據庫(PDB);
  • 同一OS: 可安裝多版本Oracle Home,啟動多實例(不同SID/ORACLE_HOME)。

結語

掌握「物理六文件、邏輯四層塔、內存雙核心、進程七大將、SCN一把尺」這五大支柱,即掌握了Oracle內核的骨架地圖。建議將本文轉化為腦圖/單頁速查表,貼於工位,遇到疑難雜症時快速定位所在層級、關聯組件、檢查路徑,實現從「盲人摸象」到「透視內核」的認知躍遷。

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