一、物理結構(操作系統文件)
| 文件類型 | 作用 | 典型命名 |
| 數據文件 | 存儲所有業務數據(表、索引、簇) | *.dbf (如 users01.dbf) |
| 重做日志文件 | 記錄所有變更,支撐故障恢復 | redo*.log / log*.dbf |
| 控制文件 | 記錄數據庫物理結構(文件路徑、SCN、檢查點等) | control*.ctl |
| 參數文件 | 實例啟動配置(內存、進程、文件路徑等) | init.ora / spfile.ora |
二、邏輯結構(存儲層次)
數據庫
└─ 表空間 (Tablespace) ← 邏輯容器,映射 1~N 個數據文件
└─ 段 (Segment) ← 對象級(表段、索引段、回滾段、臨時段)
└─ 區 (Extent) ← 連續塊組,最小分配單元
└─ 數據塊 (Block) ← 最小 I/O 單元,對應 OS 1~N 物理塊
- 一個段屬於一個表空間,可跨多個數據文件(跨文件擴展);
- 一個區只能屬於一個數據文件(不跨文件);
- 模式對象(表、視圖、索引、序列等)儲存於段中。
三、內存結構 (SGA + PGA)
| 區域 | 核心組件 | 特點 |
| SGA (共享) | Buffer Cache、Shared Pool、Redo Log Buffer、Large Pool、Java Pool、Streams Pool | 實例啟動分配,所有進程可見 |
| PGA (私有) | 排序區、哈希區、會話信息、游標狀態 | 專用連接每進程一個,共享連接按需分配 |
四、進程架構
| 類型 | 進程 | 職責 |
| 用戶進程 | Client Process | 發起 SQL 請求 |
| 服務器進程 | Dedicated / Shared Server | 解析、執行、取數 |
| 後台進程 | PMON、SMON、DBWR、LGWR、CKPT、ARCH、RECO、CJQ0、Dnnn、Snnn 等 | 實例自動化維護(清理、恢復、寫入、檢查點、歸檔、分布式恢復、作業調度、共享服務器調度) |
五、關鍵交互流程
- 用戶進程 → 服務器進程(專用/共享);
- 服務器進程讀取數據塊 → Buffer Cache(未命中則物理讀);
- DML 修改 → Redo Log Buffer → LGWR 寫入 Redo Log File;
- Commit → LGWR 強制寫入 Redo Log + SCN 推進;
- DBWR 定期/觸發將髒塊寫入 Data File;
- Checkpoint (CKPT) 更新控制文件/數據文件頭標記一致性點。
- 上一篇文章: Oracle 系統參數調優原則:共享池、Library Cache、Buffer Cache 三大核心區優化實戰
- 下一篇文章: Oracle 9i 初始化參數中文詳解:核心參數含義、取值範圍與默認值
Copyright ©
程式碼之家 All Rights Reserved