oracle 29845 1 0 Oct13 ? 00:00:44 ora_pmon_xxx
oracle 29847 1 0 Oct13 ? 00:00:06 ora_psp0_xxx
oracle 29849 1 0 Oct13 ? 00:00:09 ora_mman_xxx
oracle 29851 1 0 Oct13 ? 00:00:18 ora_dbw0_xxx
oracle 29853 1 0 Oct13 ? 00:00:23 ora_lgwr_xxx
oracle 29855 1 0 Oct13 ? 00:01:22 ora_ckpt_xxx
oracle 29857 1 0 Oct13 ? 00:00:09 ora_smon_xxx
oracle 29859 1 0 Oct13 ? 00:00:00 ora_reco_xxx
oracle 29861 1 0 Oct13 ? 00:01:01 ora_cjq0_xxx
oracle 29863 1 0 Oct13 ? 00:00:30 ora_mmon_xxx
oracle 29865 1 0 Oct13 ? 00:02:49 ora_mmnl_xxx
oracle 29903 1 0 Oct13 ? 00:00:02 ora_qmnc_xxx
oracle 31437 1 0 Oct13 ? 00:00:00 ora_q000_xxx
oracle 31439 1 0 Oct13 ? 00:00:01 ora_q001_xxx
這些都是oracle后台進程,不同的進程有不同的任務,對應不同的日志。
命名規則:
ora_進程名稱_SID
進程作用:
1)PMON:進程監視器(Process Monitor)
監控其他進程(其他后台進程或者用戶連接進程),在必要的時候恢復或撤銷其他進程,釋放資源。比如我們kill 掉oracle日志寫進程,PMON會及時監控到,並shutdown數據庫。
另一個作用是向Oracle TNS 監聽器注冊實例。實例啟動時,PMON 進程會詢問公認的端口地址(除非直接指定),來查看是否啟動並運行了一個監聽器
2)SMON:系統監視器(System Monitor)
清理臨時空間以及臨時段:在數據庫起來的時清理臨時表空間中的臨時段,者一些異常操作過程遺留下來的臨時段(查詢查到一半被用戶cancel掉等)
接合空閑空間,將tablespace中相鄰的extent合並
執行實例恢復(Instance recovery):用於非法關閉數據庫之后的instance recovery(應用Redo執行前滾、打開數據庫提供訪問、回滾未提交數據)
離線(Offline)回滾段,如在修改database的undo tablespace的時候
3)RECO:分布式數據庫恢復(Distributed Database Recovery)
RECO后台進程僅當在允許分布式事務的系統中出現,該進程是在具有分布式選項時所使用的一個進程,自動地解決在分布式事務中的故障。一個結點RECO后台進程自動地連接到包含有懸而未決的分布式事務的
其它數據庫中,RECO自動地解決所有的懸而不決的事務。任何相應於已處理的懸而不決的事務的行將從每一個數據庫的懸掛事務表中刪去。當一數據庫服務器的RECO后台進程試圖建立同一遠程服務器的通信,
如果遠程服務器是不可用或者網絡連接不能建立時,RECO自動地在一個時間間隔之后再次連接。
4)CKPT:檢查點進程(Checkpoint Process)
負責oracle后台的check point,所謂check point是指將SGA中的臟數據flush到data file中。不過CKPT進程只是更新數據文件的文件首部,以輔助真正建立檢查點的進程(DBWn)
5)DBWn:數據庫塊寫入器(Database Block Writer)
數據庫塊寫入器(DBWn)是負責將臟塊寫入磁盤的后台進程。
6)LGWR:日志寫入器(Log Writer)
LGWR 進程負責將SGA 中重做日志緩沖區的內容刷新輸出到磁盤。如果滿足以下某個條件,就會做這個工作:
每3 秒會刷新輸出一次
任何事務發出一個提交時
重做日志緩沖區1/3 滿,或者已經包含1 MB 的緩沖數據
7)ARCn:歸檔進程(Archive Process)
ARCn 通常將在線重做日志文件復制到其他的位置,前提是數據庫開啟歸檔模式。
8)cjq0 Job Queue Processes
用於對job的協調,管理
(1)當配置job_queue_processes時,會有Jnnn和CJQ0進程;
(2)Jnnn進程最多可有1000個;
(3)Jnnn進程在job之間是共享的,但同時每個Jnnn只能執行一個job,並且它使用的內存是在UGA中;
(4)物化試圖的刷新一般要用到job;
(5)streams一般用到AQ;
(6)CJQ0,做為jnnn的coordinator,它來控制jnnn的啟動和關閉;
(7)Jnnn進程只會在有job需要處理時才會啟動;
9) MMON,MMNL,Mnnn:Manageability Monitors
(1)用於AWR(autmatic workload repository);
(2)MMNL負責將SGA中的統計信息寫入到表中;
(3)MMON監控數據庫性能,進行自動調優;
(4)Mnnn屬於MMON的幫手,幫助進行調優工作。
10)QMNC and Qnnn Processes:Job Queue
(1)用於AQ功能;
(2)Qnnn處理每個message queue,QMNC做為Qnnn的coordinator;
(3)如果配置了aq_tm_processes,就會啟動QMNC和Qnnn進程,不論有沒有queue要處理,Qnnn都會全部啟動;
11)Pnnn 並行進程,啟動了並存處理的時候會有(並行查詢,並行dml,並行ddl,並行回滾)
主要后台進程的啟動順序:
PMON started with pid=2, OS id=18279
PSP0 started with pid=3, OS id=18281
MMAN started with pid=4, OS id=18283
DBW0 started with pid=5, OS id=18285
DBW1 started with pid=6, OS id=18287
后台進程的日志路徑:$ORACLE_BASE/admin/zxin/bdump