| 進程 | 全稱 | 核心職能 | 關鍵觸發條件 | 可配置數量 |
|---|---|---|---|---|
| DBWn | Database Writer | 將緩存中髒塊寫入數據文件,推進检查點 | 髒塊達閾值、Checkpoint、Tablespace Offline、Checkpoint完成 | 1-36 (DB_WRITER_PROCESSES) |
| LGWR | Log Writer | 將Redo Log Buffer寫入Online Redo Log,Commit時強制刷盤 | Commit、1/3滿、1MB積累、3秒超時、Checkpoint | 固定1個 |
| SMON | System Monitor | 實例恢復(前滾/回滾)、臨時段清理、空間合并 | 啟動時(非正常關閉)、定期喚醒、SMON_SCN_TIME | 固定1個 |
| PMON | Process Monitor | 清理失敗進程資源:釋放鎖、回滾事務、釋放SGA、清理會話 | 用戶進程異常終止、網絡斷開、KILL SESSION | 固定1個 |
| CKPT | Checkpoint | 更新控制文件/數據文件頭Checkpoint SCN,指揮DBW寫入 | 日志切換、ALTER SYSTEM CHECKPOINT、LOG_CHECKPOINT_INTERVAL/TIMEOUT | 可選啟用 (CHECKPOINT_PROCESS=TRUE) |
| ARCh | Archiver | 將已滿Online Redo Log歸檔為Archived Redo Log | 日志切換、ALTER SYSTEM ARCHIVE LOG | 1-30 (LOG_ARCHIVE_MAX_PROCESSES) |
| RECO | Recoverer | 解決分布式事務掛起(雙階段提交失敗) | 分布式事務掛起、定期喚醒 | 固定1個 (分布式環境) |
| MMON/MMNL | Manageability Monitor | ADDM自動診斷、AWR快照、閾值告警、統計信息收集 | 定時(默認1小時)、統計過期 | 固定 |
用戶進程
│ COMMIT
▼
LGWR ──► Online Redo Log (強制刷盤, 返回Commit成功)
│
▼ (異步)
DBWn ──► Datafiles (批量寫入髒塊)
│
▼ (Checkpoint時)
CKPT ──► Controlfile/Datafile Header (更新Checkpoint SCN)
SMON (前滾) ──► 讀取Online Redo Log → 重做所有Committed/Uncommitted變更
│
▼
SMON (回滾) ──► 利用Undo回滾Uncommitted事務
│
▼
打開數據庫
LGWR 寫滿 Group 1 → 切換到 Group 2
│
▼ (觸發)
ARCh (ARC0/ARC1...) ──► 複製 Group 1 內容 → Archived Log (FRA/Standby)
│
▼ (完成)
更新 Controlfile: 歸檔記錄、序列號、SCN範圍
| 進程 | 關鍵等待事件 | 調優方向 |
|---|---|---|
| DBWn | db file parallel write, free buffer waits | 增加DBWn、優化存儲I/O、調大緩存 |
| LGWR | log file sync, log file parallel write | 優化Redo Log存儲(獨立磁盤/SSD)、減少Commit頻率 |
| ARCh | ARCH wait on SENDREQ, ARCH wait on DETACH | 增加ARCh數、優化網絡/存儲、啟用壓縮 |
| CKPT | checkpoint completed | 調整LOG_CHECKPOINT_INTERVAL避免頻繁Checkpoint風暴 |
DB_FILES極大(>1000)且LGWR更新文件頭導致性能下降時啟用(CHECKPOINT_PROCESS=TRUE),分離Checkpoint元數據更新與日志寫入。DB_WRITER_PROCESSES=CPU_CORES/4。LOG_ARCHIVE_MAX_PROCESSES=4-8。核心認知:
• LGWR是唯一寫入Online Redo Log的進程,Commit不返回直到LGWR確認寫入完成(含組內所有成員)。
• DBWn寫入數據文件是異步批量的,不阻塞用戶進程。
• PMON是「清道夫」,用戶進程異常斷開時自動回滾事務、釋放鎖、清理會話狀態。
• 12c+引入Unified Audit Trail由AUDSYS管理,不再依賴單獨審計進程。
• 所有後台進程異常終止將導致實例崩潰(SMON/PMON/DBWn/LGWR/CKPT/ARCh/RECO/MMON)。