掌握 Oracle 整體架構,建立高屋建瓴的認知框架
一、實體結構
資料儲存於磁碟實體檔案,使用時載入記憶體。核心檔案分類:
資料庫檔案
- 控制檔: 維護資料庫完整性關鍵資訊(資料庫名、表空間、資料/重做日誌檔位置、檢查點、日誌序列號等),至少需一個
- 資料檔: 實際儲存資料,依類型分散不同磁碟(資料字典、使用者資料、索引、暫存資料等)
- 重做日誌檔: 記錄所有變更,支援故障恢復,至少需兩組
- 追蹤檔與警示日誌: 背景程序事件記錄與資料庫錯誤同步記錄
非資料庫檔案
- 參數檔: 設定控制檔位置、SGA 大小、優化器模式、歸檔目的地等
- 密碼檔: 驗證啟動/關閉資料庫權限
- 歸檔檔: 重做日誌離線副本,媒體故障恢復關鍵
二、邏輯結構
- 表空間: 基本邏輯單位,資料檔集合
- 區段: 物件佔用空間
- 區塊: 一次性預留較大儲存空間
- 區塊: Oracle 最小儲存單位,建庫時指定
三、記憶體架構
- SGA (System Global Area): 共享記憶體區,含資料與控制資訊,實體記憶體不足時使用虛擬記憶體
- PGA (Program Global Area): 專用記憶體,單一程序專用,建立時配置、終止時回收
四、背景程序
| 程序 | 功能 |
| DBWR | 將修改資料從緩衝區寫入資料檔 |
| LGWR | 將重做日誌緩衝區寫入線上重做日誌檔 |
| SMON | 檢查一致性,啟動時執行例項恢復 |
| PMON | 程序失敗時清理資源 |
| CKPT | 檢查點時更新控制檔與資料檔標頭,分攤 LGWR 負載 |
| ARCn | 日誌切換時備份/歸檔滿載日誌組 |
| Server Process | 服務用戶程序 |
| User Process | 客戶端傳遞 SQL、接收查詢結果 |
五、SCN (System Change Number)
系統內部維護的序列號,更新時自動遞增,是維持資料一致性與順序恢復的關鍵標識。