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

Oracle 架構入門核心觀念:物理/邏輯結構、記憶體架構、背景程序完整圖解

     編輯:關於SqlServer

一、物理結構:檔案層面

檔案類型用途關鍵點
控制檔資料庫名、表空間/資料檔/重做日誌檔位置、檢查點、當前日誌序號至少 1 個,建議多工控制檔(多磁碟)
資料檔實際資料儲存(資料字典、使用者資料、索引、暫存、Undo)屬於某表空間,可跨磁碟提升 I/O
線上重做日誌檔循序記錄所有變更,支援崩潰恢復至少 2 組 (Group),每組多成員 (Member) 鏡像
參數檔 (PFILE/SPFILE)執行個體啟動參數 (SGA 大小、控制檔路徑、歸檔模式等)SPFILE 為二進位、可動態修改、持久化
歸檔日誌檔重做日誌檔的離線備份,媒體恢復必備僅歸檔模式產生,需規劃儲存空間
密碼檔認證 SYSDBA/SYSOPER 等特權使用者啟動/關閉執行個體`orapwd` 建立,`REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE`
追蹤檔 / 警示日誌背景程序錯誤、管理操作記錄、核心傾印`BACKGROUND_DUMP_DEST`、`USER_DUMP_DEST`

二、邏輯結構:儲存階層


資料庫
  └─ 表空間 
       └─ 區段 
            └─ 區塊 
                 └─ 區塊
  • 表空間:邏輯容器,對應 1~N 個資料檔(`SYSTEM`、`SYSAUX`、`USERS`、`UNDOTBS`、`TEMP` 等)。
  • 區段:物件佔用空間(表區段、索引區段、暫存區段、Undo 區段)。
  • 區塊:一次配置單位,由連續區塊組成,大小 = `N * DB_BLOCK_SIZE`。
  • 區塊:最小 I/O 單位,建庫時指定 (`DB_BLOCK_SIZE`,預設 8KB)。

三、記憶體架構

SGA 目標管理:`SGA_TARGET` / `MEMORY_TARGET` (AMM) 自動調整各組件大小。

四、背景程序

區域範圍核心組件
SGA (System Global Area)執行個體級,所有程序共享共用池、資料庫緩衝區快取、重做日誌緩衝區、大型池、Java 池、串流池、結果快取
PGA (Program Global Area)程序級,專用排序區、雜湊區、位圖合併區、游標狀態、工作區

五、啟動/關閉流程要點

  1. `STARTUP`:讀參數檔 → 配置 SGA → 啟動背景程序 → 掛載 (讀控制檔) → 開啟 (開啟資料檔/重做日誌)。
  2. `SHUTDOWN NORMAL/IMMEDIATE/TRANSACTIONAL/ABORT`:差異在於是否等待使用者/交易、是否檢查點。

六、新手常見誤區

  • 混淆執行個體 (記憶體+程序) 與資料庫 (檔案)。
  • 以為資料檔大小 = 資料量(忽略 High Water Mark、免費空間、Undo/暫存)。
  • 未啟用歸檔模式卻期望時間點恢復。
  • 控制檔、重做日誌單一磁碟無鏡像。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
程序職責
DBWn (Database Writer)將髒緩衝區寫入資料檔,LRU 演算法、檢查點觸發
LGWR (Log Writer)將重做日誌緩衝區寫入線上重做日誌檔,Commit 時強制刷盤
CKPT (Checkpoint)更新控制檔/資料檔標頭檢查點資訊,縮短恢復時間
SMON (System Monitor)執行個體恢復、合併暫存區段、清理臨時區段
PMON (Process Monitor)失敗程序清理:釋放鎖、回滾交易、釋放 PGA、重新註冊監聽器
ARCn (Archiver)歸檔模式下將填滿的重做日誌組複製至歸檔目的地
RECO (Recoverer)解決分散式交易待決狀態
MMON / MMNLAWR 快照、閾值告警、統計資料收集