學習 Oracle 資料庫,首要任務是掌握其整體架構框架。唯有建立完整的宏觀認知,才能在後續的深入學習與實務操作中做到「高屋建瓴」,游刃有餘。
Oracle 資料庫的物理結構由控制檔、資料檔、重做日誌檔、參數檔、歸檔檔、密碼檔等關鍵檔案組成。資料實際存放於磁碟的物理檔案中,使用時會被載入記憶體。
資料檔是儲存實際資料的容器,其數量與大小決定了資料庫的容量上限。為提升效能,不同類型的資料(資料字典、使用者資料、索引、暫存資料等)通常分散存放於不同磁碟的多個檔案中。
控制檔記錄維護資料庫完整性所需的關鍵資訊:資料庫名稱、表空間資訊、所有資料檔與重做日誌檔的名稱及位置、當前日誌序列號、檢查點資訊、重做日誌與歸檔狀態等。啟動執行個體時,Oracle 從參數檔讀取控制檔路徑,掛載資料庫時依控制檔開啟所有資料檔。每個資料庫至少需一個控制檔,生產環境強建議多路徑多工。
記錄對資料庫的所有變更,是故障恢復的核心依據。資料庫至少需要兩組重做日誌檔,以確保循環寫入不中斷。
每個背景進程皆有專屬追蹤檔,記錄重大事件;警示日誌是特殊的追蹤檔,集中記錄資料庫啟動、關閉、錯誤、切換日誌等關鍵訊息,是排錯首選參考。
定義執行個體特性:控制檔位置、SGA 記憶體結構大小、優化器模式等。啟動時指引 Oracle 找到控制檔,並指定歸檔日誌目的地。
已填滿的重做日誌檔離線副本,對介質故障恢復至關重要。啟用 ARCHIVELOG 模式後自動產生。
鑑別擁有 SYSDBA/SYSOPER 權限的用戶,允許遠端啟動/關閉資料庫。
| 進程 | 縮寫 | 核心職責 |
|---|---|---|
| 資料庫寫入進程 | DBWn | 將髒緩衝區寫入資料檔 |
| 日誌寫入進程 | LGWR | 將重做日誌緩衝區寫入線上重做日誌檔 |
| 系統監控進程 | SMON | 執行執行個體恢復、整理暫存段、合併相鄰自由區 |
| 進程監控進程 | PMON | 清理失敗進程遺留資源(鎖、SGA 空間等) |
| 檢查點進程 | CKPT | 檢查點發生時更新控制檔與資料檔標頭,減輕 LGWR 負擔 |
| 歸檔進程 | ARCn | 將填滿的線上重做日誌檔複製至歸檔目的地 |
| 伺服器進程 | - | 代表用戶進程執行 SQL、傳回結果 |
| 用戶進程 | - | 客戶端工具發起連線、發送 SQL、接收結果 |
System Change Number(系統變更號)是內部維護的遞增序號,每次提交遞增。它是實現讀一致性、恢復排序、分散式資料庫同步的核心標識。
掌握上述架構,即打開了 Oracle 內部運作的大門,為後續的效能調校、備份恢復、故障診斷奠定堅實基礎。