一、 Oracle 資料庫 vs 實例:兩大核心組件
完整的 Oracle 系統由兩部分組成:
| 組件 | 內容 |
| 資料庫 | 物理檔案集合:資料檔、控制檔、線上重做日誌、參數檔等 |
| 實例 | 記憶體結構(SGA)+ 背景程序(PMON、SMON、DBWn、LGWR、CKPT…) |
啟動資料庫 = 在記憶體建立實例(分配 SGA、啟動背景程序) → 實例掛載並開啟資料庫檔案。SGA 是核心記憶體區,包含資料庫緩衝區快取、共享池等,佔 SGA 95% 以上,透過減少 I/O 提升效能。
二、 邏輯與物理儲存結構
1. 邏輯層級:資料庫 → 表空間 → 區段 → 區塊 → 區塊
- 資料庫:邏輯資料集合,包含關聯式表、視圖、索引等,亦支援物件導向結構。
- 表空間:資料庫的邏輯劃分,每個資料庫至少有 SYSTEM 表空間。常見規劃:
USER(一般用戶)、RBS/UNDO(回滾/撤銷)、IDX(索引)、TEMP(暫存)等。
- 資料檔:表空間的物理載體,一個表空間可含多個資料檔,但一個資料檔只屬於一個表空間。Oracle 7.2+ 支援自動擴展。
將不同表空間的資料檔分置於不同磁碟,是優化 I/O 分佈的關鍵手段。
2. 物理層級:作業系統層面的檔案與區塊
邏輯結構描述 Oracle 內部組織;物理結構描述 OS 層面組織。兩者映射關係是 DBA 調校的基礎。
三、 實例啟動與參數檔
- init.ora / spfile:實例啟動參數,決定 SGA 大小、程序數量、資料庫名稱等。修改需重啟生效(動態參數除外)。慣例命名:
init.ora。
- config.ora:靜態參數(如
db_block_size),建立後不可變。慣例命名:config.ora,並在 init.ora 中以 IFILE 參數引入。
四、 關鍵背景程序速覽
- DBWn:將髒緩衝區寫入資料檔
- LGWR:將重做日誌緩衝寫入線上重做日誌檔
- CKPT:定期更新控制檔與資料檔標頭的檢查點資訊
- SMON:執行執行個體恢復、合併自由空間
- PMON:清理失敗程序佔用的資源
- ARCH:歸檔模式下將線上重做日誌複製至歸檔目的地
五、 實例與資料庫的多對多關係
- 單實例單資料庫:最常見架構
- RAC (Real Application Clusters):多實例存取單一資料庫(共享儲存),提供高可用與擴展性
- Data Guard:單實例備援至另一實例(實體備份資料庫)
結語
掌握「實例 = 記憶體 + 程序」、「資料庫 = 物理檔案」、「表空間 = 邏輯容器」這三大核心概念,是進階 Oracle 管理、效能調校與架構設計的基石。