首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle後台進程核心職能與協作機制圖解

     編輯:Oracle 資料庫基礎

核心後台進程速查表

進程全稱核心職能關鍵觸發條件可配置數量
DBWnDatabase Writer將緩存中髒塊寫入數據文件,推進检查點髒塊達閾值、Checkpoint、Tablespace Offline、Checkpoint完成1-36 (DB_WRITER_PROCESSES)
LGWRLog Writer將Redo Log Buffer寫入Online Redo Log,Commit時強制刷盤Commit、1/3滿、1MB積累、3秒超時、Checkpoint固定1個
SMONSystem Monitor實例恢復(前滾/回滾)、臨時段清理、空間合并啟動時(非正常關閉)、定期喚醒、SMON_SCN_TIME固定1個
PMONProcess Monitor清理失敗進程資源:釋放鎖、回滾事務、釋放SGA、清理會話用戶進程異常終止、網絡斷開、KILL SESSION固定1個
CKPTCheckpoint更新控制文件/數據文件頭Checkpoint SCN,指揮DBW寫入日志切換、ALTER SYSTEM CHECKPOINT、LOG_CHECKPOINT_INTERVAL/TIMEOUT可選啟用 (CHECKPOINT_PROCESS=TRUE)
ARChArchiver將已滿Online Redo Log歸檔為Archived Redo Log日志切換、ALTER SYSTEM ARCHIVE LOG1-30 (LOG_ARCHIVE_MAX_PROCESSES)
RECORecoverer解決分布式事務掛起(雙階段提交失敗)分布式事務掛起、定期喚醒固定1個 (分布式環境)
MMON/MMNLManageability MonitorADDM自動診斷、AWR快照、閾值告警、統計信息收集定時(默認1小時)、統計過期固定

關鍵協作流程圖解

1. 事務提交流程


用戶進程
    │ COMMIT
    ▼
LGWR ──► Online Redo Log (強制刷盤, 返回Commit成功)
    │
    ▼ (異步)
DBWn ──► Datafiles (批量寫入髒塊)
    │
    ▼ (Checkpoint時)
CKPT ──► Controlfile/Datafile Header (更新Checkpoint SCN)

2. 實例恢復流程 (啟動時)


SMON (前滾) ──► 讀取Online Redo Log → 重做所有Committed/Uncommitted變更
    │
    ▼
SMON (回滾) ──► 利用Undo回滾Uncommitted事務
    │
    ▼
打開數據庫

3. 歸檔流程


LGWR 寫滿 Group 1 → 切換到 Group 2
    │
    ▼ (觸發)
ARCh (ARC0/ARC1...) ──► 複製 Group 1 內容 → Archived Log (FRA/Standby)
    │
    ▼ (完成)
更新 Controlfile: 歸檔記錄、序列號、SCN範圍

進程監控與調優指標

進程關鍵等待事件調優方向
DBWndb file parallel write, free buffer waits增加DBWn、優化存儲I/O、調大緩存
LGWRlog file sync, log file parallel write優化Redo Log存儲(獨立磁盤/SSD)、減少Commit頻率
ARChARCH wait on SENDREQ, ARCH wait on DETACH增加ARCh數、優化網絡/存儲、啟用壓縮
CKPTcheckpoint completed調整LOG_CHECKPOINT_INTERVAL避免頻繁Checkpoint風暴

可選進程啟用建議

  • CKPT:僅當DB_FILES極大(>1000)且LGWR更新文件頭導致性能下降時啟用(CHECKPOINT_PROCESS=TRUE),分離Checkpoint元數據更新與日志寫入。
  • 多DBWn:多CPU核心(>8)、高修改負載系統,設置DB_WRITER_PROCESSES=CPU_CORES/4。
  • 多ARCh:高日志產生率、遠程Standby網絡延遲、壓縮歸檔場景,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)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved