首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 後台進程全圖鑑:核心/可選/RAC/工具/其他 5 大類 30+ 進程職責詳解

     編輯:Oracle 資料庫相關知識

Oracle 實例啟動後,後台進程默默支撐著數據庫的讀寫、恢復、監控、資源管理。本文基於 V$BGPROCESS 實測輸出,系統梳理**核心必備、可選功能、RAC 專用、工具輔助、其他**五大類 30+ 進程的職責、觸發條件、調優關注點,附進程異常診斷清單。

一、查看當前後台進程

SELECT paddr, name, description
FROM v$bgprocess
WHERE paddr != '00'
ORDER BY name;

二、核心後台進程(實例不可或缺)

三、可選/功能性後台進程(按需啟動)

進程全稱核心職責關鍵指標/調優點
PMONProcess Monitor清理異常終止會話(釋放鎖、回滾事務、釋放 PGA)、向監聽器動態註冊服務監控 V$SESSION 殘留、註冊失敗日志
SMONSystem Monitor實例恢復(前滾/回滾)、合併臨時段空閒空間、清理 OBJ$、收縮/離線回滾段、RAC 節點故障恢復啟動階段耗時、臨時表空間碎片
DBWnDatabase Writer (n=0-9, a-j)將緩存中的髒塊寫入數據文件,推進檢查點、釋放緩存空間DB_WRITER_PROCESSES、FILESYSTEMIO_OPTIONS=ASYNCH、V$DBWRITER_STATS
LGWRLog Writer將 Redo Log Buffer 刷盤到 Online Redo Log,保證事務持久化觸發條件:Commit、1/3 滿、1MB、3秒、Checkpoint;LOG_BUFFER、COMMIT_WRITE、V$LOG_HISTORY
CKPTCheckpoint更新數據文件頭/控制文件檢查點信息,協助 DBWn 確定寫入範圍FAST_START_MTTR_TARGET、LOG_CHECKPOINT_INTERVAL
ARCnArchiver (n=0-9)在線 Redo Log 切換後複製到歸檔目標(本地/遠程/ASM)LOG_ARCHIVE_MAX_PROCESSES、ARCHIVE_LAG_TARGET、V$ARCHIVE_DEST_STATUS
RECODistributed Recovery解決兩階段提交 (2PC) 中的 In-doubt 分布式事務,聯繫協調器決定提交/回滾監控 DBA_2PC_PENDING、DBA_2PC_NEIGHBORS
DIAGDiagnosability捕獲實例崩潰/錯誤上下文,生成 Incident Package、Health Monitor 數據DIAGNOSTIC_DEST、ADRCI 工具
進程全稱啟用條件/功能
ASMBASM BackgroundASM 實例或使用 ASM 的數據庫實例;與 ASM 實例通信、心跳、統計上報
RBALRebalancerASM 磁盤組加入/移除磁盤時觸發,協調 Rebalance
FBDAFlashback Data Archiver11g+,啟用 Flashback Data Archive 表時,維護歷史行版本
DBRMDatabase Resource Manager啟用 Resource Plan 時,執行資源分配、CPU 限流
VKTMVirtual Keeper of Time11g+,提供高精度、單調遞增的時間源,替代 OS gettimeofday
VKRMVirtual Scheduler for RM輔助 DBRM 進行資源調度
GEN0Generic Task通用任務執行器,分擔其他進程阻塞操作(如統計信息採集)
MMANMemory ManagerASMM/AMM 環境下動態調整 SGA/PGA 組件大小
MMON / MMNLManageability MonitorMMON:定期採集 AWR 快照、閾值告警;MMNL:輕量級採集 Active Session History (ASH)
SMCOSpace Manager Coordinator11g+,協調段空間回收、壓縮、HWM 下移等主動空間管理任務
CJQ0 / JnnnJob Queue Coordinator / WorkersDBMS_JOB / DBMS_SCHEDULER 作業調度,Jnnn 執行具體作業
QMNC / QnnnAQ Coordinator / WorkersAdvanced Queueing 監視、出隊、傳播
EMNCEvent MonitorAQ 事件通知
DMnn / DWnnData Pump Master / Workers10g+,Data Pump 導出導入並行執行
PSP0Process Spawner11g+,按需動態啟動後台進程(如並行查詢、Data Pump)

四、RAC 專用後台進程(僅集群環境)

五、進程異常診斷清單

  1. 進程消失/僵死:ps -ef | grep ora_ 對比 V$BGPROCESS,缺失進程需分析 alert.log、trace 文件,常見於 OOM Killer、段錯誤、ASM 磁盤組強制卸載。
  2. LGWR 寫入延遲:log file sync 等待事件飆升 → 檢查存儲延遲、LOG_BUFFER 過小、提交頻率過高(批量提交優化)。
  3. DBWn 寫入緩慢:free buffer waits、write complete waits → 增加 DB_WRITER_PROCESSES、啟用異步 I/O、優化存儲。
  4. ARCn 歸檔滯後:ARCHIVE DEST 狀態 ERROR、FULL → 檢查網絡/磁盤空間、增加 LOG_ARCHIVE_MAX_PROCESSES。
  5. MMON/MMNL 採集失敗:AWR 快照間隔缺失 → DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 修正保留/間隔。
  6. RAC LMSn 忙碌:gc cr grant 2-way、gc current block busy → 優化應用減少跨節點訪問、增加 LMS 進程數、檢查互連網絡延遲。

六、版本差異提示

  • 9i:無 VKTM、VKRM、FBDA、SMCO、PSP0、MMNL、DMnn/DWnn。
  • 10g:引入 MMON/MMNL、DMnn/DWnn、ASMB/RBAL、VKTM。
  • 11g:引入 FBDA、SMCO、PSP0、VKRM、GEN0、DIAG。
  • 12c/18c/19c/21c:進程名基本穩定,新增 PDB 相關進程(如 Pnnn)、In-Memory 進程(IMCO、Wnnn)。

熟悉每個後台進程的「職責邊界、觸發條件、關鍵等待事件」,能在性能風暴中快速定位「是哪個進程在幹壞事、還是哪個進程沒幹好事」,從症狀直達根因,是高級 DBA 的核心內功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
進程全稱職責
LMONLock Monitor監視節點存活、故障檢測、重新配置全局鎖資源
LMDLock Manager Daemon管理全局鎖服務(GES)、處理鎖請求、死鎖檢測
LMSnLock Manager Server (n=0-9)實際傳輸一致性塊(Cache Fusion)、處理 GC CR/BLK 請求
LCK0Lock Process輔助 LMD 處理非緩存融合的全局資源鎖(如庫緩存鎖)