Oracle Instance 由「記憶體結構 (SGA)」與「背景進程」組成。進程模式決定了連線如何被服務,直接影響擴展性與資源利用率。
| 模式 | 別名 | 特點 | 適用場景 |
|---|---|---|---|
| 單進程 | Dedicated/單用戶 | 一個進程執行所有 Oracle 核心代碼 + 用戶應用;無背景進程 | MS-DOS、嵌入式、極簡開發環境 |
| 多進程 | Multi-user/多用戶 | 多進程分工協作;每個連線對應專屬 Server Process | 所有生產環境、企業級部署 |
Instance 啟動時自動建立,協同維護資料庫一致性與效能:
| 進程 | 核心職責 |
|---|---|
| DBWn | 將髒塊從 Buffer Cache 寫入資料檔 |
| LGWR | 將 Redo 記錄從 Log Buffer 寫入線上日誌檔 |
| CKPT | 定期更新資料檔標頭與控制檔的 Checkpoint SCN |
| SMON | Instance Recovery、臨時段清理、空間合併 |
| PMON | 進程失敗清理、釋放鎖、重註冊 Listener |
| ARCn | 歸檔模式下將線上日誌複製到歸檔目的地 |
| RECO | 分散式交易自動解決 in-doubt 狀態 |
| MMAN/MMNL/MMON | 自動記憶體管理、AWR 快照收集、ADDM 分析 |
PROCESSES:最大同時作業系統進程數(含背景進程)。SESSIONS:衍生自 PROCESSES,限制並發 Session。DISPATCHERS、SHARED_SERVERS:啟用共用伺服器模式。多進程架構透過職責分離實現高並發與容錯。理解 Server/Background 進程分工、專用與共用伺服器選型,是架構設計與效能診斷的必修課。