初學 Oracle 常被龐大體系嚇退。建立清晰的架構心智圖,是從「會用」走向「精通」的關鍵。本文按物理結構、邏輯結構、內存架構、後台進程、實例與 SCN 五大維度,為您拆解 Oracle 核心骨架。
一、物理結構:落地的六大文件類型
- 控制文件:數據庫「身份證」,記錄數據文件/重做日志路徑、檢查點信息,至少 1 個,建議多路徑鏡像。
- 數據文件:實際存放表、索引等業務數據的容器。
- 重做日志文件:事務變更的順序記錄,崩溃恢復的命脈,至少 2 組多路徑複用。
- 參數文件(SPFILE/PFILE):實例啟動配置,決定 SGA 大小、進程數等核心屬性。
- 歸檔文件:重做日志的離線副本,介質恢復的基石。
- 密碼文件:鑑別 SYSDBA/SYSOPER 等特權用戶身份。
二、邏輯結構:四層存儲層級
表空間 → 段 → 區 → 塊
- 表空間:邏輯容器,由 1~N 個數據文件組成。
- 段:對象(表/索引/回滾段)佔用的空間集合。
- 區:連續塊的集合,空間分配的最小單元。
- 塊:I/O 操作的原子單位,建庫時指定(通常 8KB/16KB)。
三、內存架構:SGA 與 PGA 的分工
- SGA(系統全局區):多進程共享,含共享池、數據庫緩沖區、重做日志緩沖區、大池等。物理內存不足時溢寫至虛擬內存。
- PGA(程序全局區):專用於單一服務器/後台進程,存放排序區、游標狀態等。進程創建時分配,終止時釋放,不共享。
四、後台進程:數據庫的「心跳」
| 進程 | 核心職責 |
| DBWn | 將髒塊從緩沖區寫入數據文件 |
| LGWR | 將重做日志緩沖寫入在線日志文件 |
| SMON | 實例恢復、臨時段清理、空間合併 |
| PMON | 失敗進程資源清理、監聽註冊 |
| CKPT | 檢查點推進,更新控制文件/數據文件頭 |
| ARCn | 日志切換時歸檔滿組 |
| 用戶/服務進程 | 客戶端請求傳遞與結果返回 |
五、實例與 SCN
實例 = SGA + 後台進程,一次只能掛載/打開一個數據庫。SCN(系統變更號) 是內部遞增序列號,標記事務提交順序,是恢復一致性、數據一致性讀取的核心時標。