| 進程 | 全名 | 核心職責 | 觸發條件/頻率 | 關鍵等待事件 |
| PMON | Process Monitor | 清理失敗進程資源:釋放鎖、回滾未提交交易、釋放 SGA/PGA、清理暫時段 | 偵測到進程異常終止時 | pmon timer |
| SMON | System Monitor | 執行個體恢復 (前滾/回滾)、合併臨時段空間、清理臨時段 | 啟動 MOUNT 階段、定期喚醒 | smon timer |
| DBWR | Database Writer | 將 Buffer Cache 中**髒塊**寫入資料檔,採用 LRU/LRUW 清單演算法 | Checkpoint、Buffer Cache 壓力、定期 (每 3 秒檢查) | db file parallel write, free buffer waits |
| LGWR | Log Writer | 將 Redo Log Buffer **循序寫入**線上 Redo Log 檔,保證交易持久性 | COMMIT、每 3 秒、1/3 滿、1MB、DBWR 前 | log file sync, log file parallel write |
| CKPT | Checkpoint | 更新控制檔/資料檔標頭的 Checkpoint SCN,指引 DBWR 寫入範圍,縮短恢復時間 | Log Switch、LOG_CHECKPOINT_INTERVAL/TIMEOUT、手動 | control file sequential read |
四、 進程協作關鍵流程
1. 交易提交流程
- User Process 產生 Redo Vector → Redo Log Buffer
- LGWR 寫入線上 Redo Log (同步等待
log file sync)
- User Process 釋放鎖,回傳 COMMIT 完成
- **DBWR 稍後非同步**寫入髒塊至資料檔
2. Checkpoint 流程
- CKPT 計算目標 Checkpoint SCN
- 更新控制檔、資料檔標頭 Checkpoint SCN
- 通知 DBWR 寫入該 SCN 前所有髒塊
- 完成後推進 Checkpoint 位置
3. 執行個體恢復 (SMON)
- OPEN 階段偵測資料檔 Checkpoint SCN < 控制檔 SCN
2. **前滾**:從最後 Checkpoint 讀取 Redo Log 重做所有變更
3. **回滾**:利用 Undo 回滾未提交交易
4. 釋放鎖,資料庫開放存取
五、 額外重要背景進程 (10g+)
| 進程 | 功能 |
| MMON/MMNL | AWR 快照收集、閾值告警、自動統計收集 |
| RBAL/ARBn | ASM 磁碟重新平衡 (RAC/ASM 環境) |
| FBDA | Flashback Data Archive 歸檔 (11g+) |
| DIAG | 診斷框架、健康監控、自動問題分析 |
| VKTM | 高精度時間基準 (RAC/Exadata) |
六、 監控與診斷實用查詢
-- 背景進程狀態
SELECT pname, program, status FROM v$bgprocess WHERE pname NOT LIKE 'PSEUDO%';
-- 進程等待事件
SELECT sid, event, wait_time, seconds_in_wait FROM v$session_wait WHERE sid IN (SELECT sid FROM v$bgprocess);
-- Checkpoint 統計
SELECT name, value FROM v$sysstat WHERE name LIKE '%checkpoint%';
-- 實例啟動時間
SELECT startup_time FROM v$instance;
七、 架構師視角:實例設計決策
- 專用伺服器 vs 共用伺服器:高併發短連線 → 共用伺服器 (節省 PGA/Process);長連線/複雜操作 → 專用伺服器
- PGA 管理策略:啟用自動
PGA_AGGREGATE_TARGET,設定 PGA_AGGREGATE_LIMIT 防止失控
- Checkpoint 頻率:
LOG_CHECKPOINT_TIMEOUT=1800 (30 分鐘) 平衡恢復時間與 DBWR 壓力
- Redo Log 群組/大小:至少 3 組,每組 2 成員,大小使 Switch 間隔 15~30 分鐘
- RAC 多實例:共享資料庫、獨立 SGA/PGA/背景進程,透過 GCS/GES 協調緩存一致性
實例是資料庫的「心臟與神經系統」,記憶體結構決定處理容量,背景進程保障資料一致性與持久性。深入理解五大核心進程協作機制,是故障診斷、效能調校、高可用架構設計的核心能力。
- 上一篇文章: Oracle 體系架構基石:資料庫、表空間與資料檔案邏輯物理映射關係
- 下一篇文章: Windows 7 安裝 Oracle 11g 相容性失敗完整解決方案:修改 refhost.xml 繞過檢查
Copyright ©
程式碼之家 All Rights Reserved