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

Oracle 架構基礎知識精華版:邏輯結構、記憶體分配、背景進程與 SCN 核心觀念

     編輯:Oracle 資料庫基礎

一、邏輯結構:四層儲存層次

層次定義關鍵特性
Tablespace (表空間)邏輯容器,資料檔集合1:N Datafile,LMT 本地管理,AUTOALLOCATE 區大小自動
Segment (段)物件儲存實體Table/Index/LOB/Undo/Temp 段,1:N Extent,屬 1 Tablespace
Extent (區/盤區)連續區塊集合LMT 自動管理,Uniform 或 Autoallocate,建議區數越少越好
Block (塊/區塊)最小 I/O 單位DB_BLOCK_SIZE 建庫指定 (8K/16K/32K),OS Block 整數倍

二、記憶體分配:SGA vs PGA

特性SGA (System Global Area)PGA (Program Global Area)
共享性所有 Server/Background Process 共享單一 Process 專用
核心組件Shared Pool, Buffer Cache, Redo Log Buffer, Large Pool, Java Pool, Streams Pool, In-Memory AreaSort Area, Hash Area, Session Info, Cursor State, UGA (專用伺服器模式)
生命週期Instance 啟動配置,關閉釋放Process 建立配置,終止釋放
關鍵參數SGA_TARGET / SGA_MAX_SIZE (自動共享記憶體管理 ASMM)PGA_AGGREGATE_TARGET / PGA_AGGREGATE_LIMIT

三、背景進程:核心職責速查表

進程縮寫核心職責關鍵觸發
Database WriterDBWn髒塊寫入資料檔LRU/Checkpoint/Truncate
Log WriterLGWRRedo 寫入線上日志Commit/1/3MB/3秒
System MonitorSMON實例恢復、Temp清理、空間合併啟動/定期
Process MonitorPMON失敗進程清理、鎖釋放、Listener註冊進程異常終止
CheckpointCKPT更新控制檔/資料檔 CheckpointCheckpoint 發生
ArchiverARCn歸檔滿的 Redo Log GroupLog Switch
Server Process-執行使用者 SQL/PLSQL連線建立
User Process-客戶端發送請求/接收結果-

CKPT 進程啟用條件

參數 CHECKPOINT_PROCESS = TRUE (預設 FALSE)。適用:資料檔極多 (>1000)、LGWR Checkpoint 負擔過重。CKPT 不寫塊,僅更新表頭,實際寫入仍由 DBWR 執行。

四、SCN (System Change Number):系統一致性時鐘

  • 單調遞增 64 位整數 (12c+ 48 位 SCN + 16 位 Wrap)。
  • 每 Commit 推進,標記交易提交順序。
  • 核心用途:
    • 一致性讀取 (Consistent Read) 基準點。
    • 實例/介質恢復、Flashback 定位點。
    • 分散式交易全域協調。

結語

「邏輯結構定義資料如何組織,記憶體決定存取速度,進程執行核心工作,SCN 串聯時序一致性。」掌握這四大支柱,即掌握 Oracle 核心架構。

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