后臺進(jìn)程用來執(zhí)行保證數(shù)據(jù)庫運(yùn)行所需的實(shí)際維護(hù)任務(wù)。如:某個后臺進(jìn)程維護(hù)緩沖區(qū)緩存,根據(jù)需要將塊寫出到數(shù)據(jù)文件.
另個進(jìn)程負(fù)責(zé)在線重做日志文件寫滿時將它自己復(fù)制到一個歸檔目標(biāo).
可以通過查詢v$bgprocess視圖看服務(wù)器當(dāng)前后臺進(jìn)程
SQL> select paddr,name,description from v$bgprocess where paddr!='00';
PADDR NAME DESCRIPTION
---------------- ----- ----------------------------------------------------------------
00000001EB1F5920 PMON process cleanup
00000001EC226B30 VKTM Virtual Keeper of TiMe process
00000001EB1F69A0 GEN0 generic0
00000001F0269448 DIAG diagnosibility process
00000001EC227BB0 DBRM DataBase Resource Manager
00000001EB2137A0 VKRM Virtual sKeduler for Resource Manager
00000001F02683C8 PSP0 process spawner 0
00000001EB1F7A20 DIA0 diagnosibility process 0
00000001F026A4C8 MMAN Memory Manager
00000001EC228C30 DBW0 db writer process 0
00000001EB1F8AA0 DBW1 db writer process 1
00000001EB1FFE20 ARC0 Archival Process 0
00000001F02728C8 ARC1 Archival Process 1
00000001EC231030 ARC2 Archival Process 2
00000001EB200EA0 ARC3 Archival Process 3
00000001F026B548 LGWR Redo etc.
00000001EC229CB0 CKPT checkpoint
00000001EB1F9B20 SMON System Monitor Process
00000001EB1FCCA0 SMCO Space Manager Process
00000001F026C5C8 RECO distributed recovery
PADDR NAME DESCRIPTION
---------------- ----- ----------------------------------------------------------------
00000001EB201F20 CJQ0 Job Queue Coordinator
00000001F0273948 QMNC AQ Coordinator
00000001EC22AD30 MMON Manageability Monitor Process
00000001EB1FABA0 MMNL Manageability Monitor Process 2
根據(jù)版本的不同,后臺進(jìn)程數(shù)、名稱、類型等都可能不同.
中心后臺進(jìn)程:
PMON(進(jìn)程監(jiān)視器):負(fù)責(zé)在出現(xiàn)異常中止的連接后完成清理.PMON還會向oracle TNS監(jiān)聽器注冊通信,向它傳遞相關(guān)的參數(shù).
SMON(系統(tǒng)監(jiān)視器):完成所有的系統(tǒng)級任務(wù).包括以下內(nèi)容:
清理臨時空間,合并空閑空間,針對原來不可用的文件恢復(fù)活動的事務(wù),執(zhí)行RAC中失敗節(jié)點(diǎn)的實(shí)例恢復(fù),清理OBJ$,收縮回滾段,‘離線’回滾段.
RECO(分布式數(shù)據(jù)庫恢復(fù)):基于2PC分布式協(xié)議,允許多個不同的修改實(shí)現(xiàn)原子提交,但是在真正提交前,出現(xiàn)網(wǎng)絡(luò)失敗等錯誤,事務(wù)成為一個可疑的分布式事務(wù).此時
就需要RECO來負(fù)責(zé)聯(lián)系事務(wù)協(xié)調(diào)器來發(fā)現(xiàn)協(xié)調(diào)的結(jié)果。在這之前事務(wù)會保持未提交狀態(tài).當(dāng)恢復(fù)網(wǎng)絡(luò)或者錯誤解決后,RECO可能會提交事務(wù),也可能將事務(wù)回滾.
注:可疑分布式事務(wù)會導(dǎo)致寫阻塞讀的情況,即可疑分布式事務(wù)不能存在太長時間,DBA可自行手動提交或回滾.
CKPT(檢查點(diǎn)進(jìn)程):建立檢查點(diǎn)主要是DBWn的任務(wù).CKPT主要是更新數(shù)據(jù)文件的文件首部,從而輔助真正的建立檢查點(diǎn)的進(jìn)程.
DBWn(數(shù)據(jù)庫塊寫入器):負(fù)責(zé)將臟塊(修改過的塊)寫入磁盤的后臺進(jìn)程,它會寫出緩沖區(qū)緩存的臟塊,從而釋放相應(yīng)的空間.可以配置多個DBWn(上面有2個DBW0和DBW1),
最好的情況是DBWn使用異步I/O將塊寫入磁盤.采用異步I/O,DBWn會收集要寫入的塊,交給操作系統(tǒng),然后立即返回,并收集下一批要寫的塊,操作系統(tǒng)完成寫文件操作之后,它會異步地通知DBWn.
LGWR(日志寫入器):它負(fù)責(zé)將SGA中重做日志緩沖區(qū)的內(nèi)容刷新輸出到磁盤.一般在下面幾個情況時候,LGWR就會執(zhí)行刷新操作:
1.每隔3秒會自動刷新一次
2.任何事務(wù)發(fā)出一個提交時
3.重做日志緩沖區(qū)1/3滿,或者包含1MB的緩沖數(shù)據(jù)的時候.
ARCn(歸檔進(jìn)程):當(dāng)LGWR將在線重做日志寫滿時,歸檔進(jìn)程就將其復(fù)制到另一個位置.ARCn一般將在線重做日志至少復(fù)制到兩個位置.一般用于硬盤等介質(zhì)損壞時數(shù)據(jù)庫的恢復(fù).
DIAG(診斷性進(jìn)程):它會負(fù)責(zé)監(jiān)視實(shí)例的整體狀況,捕獲處理實(shí)例失敗時所需的信息并記錄.
FBDA(閃回數(shù)據(jù)歸檔進(jìn)程):此進(jìn)程為oracle 11g r1版本新增進(jìn)程.主要用于閃回數(shù)據(jù),它主要維護(hù)隨時間對表中每行所做的改變,而實(shí)現(xiàn)歷史數(shù)據(jù)查詢.它將讀取事務(wù)生成的UNDO,并回滾事務(wù)做出的改變,然后將回滾的這些行記錄保存在閃回數(shù)據(jù)歸檔中.
DBRM(數(shù)據(jù)庫資源管理器進(jìn)程):為數(shù)據(jù)庫實(shí)例配置資源計劃.
GEN0(通用任務(wù)執(zhí)行進(jìn)程):主要是分擔(dān)另外某個進(jìn)程的阻塞處理。
可選后臺進(jìn)程:
ASMB(自動存儲管理后臺):該進(jìn)程出現(xiàn)在ASM的數(shù)據(jù)庫實(shí)例中.它負(fù)責(zé)與管理存儲的ASM實(shí)例通信,向ASM實(shí)例提供更新的統(tǒng)計信息,并向ASM實(shí)例提供一個"心跳".
RBAL(重新平衡進(jìn)程):該進(jìn)程也在使用了ASM的數(shù)據(jù)庫實(shí)例中運(yùn)行,向ASM磁盤組增加或去除磁盤時,它負(fù)責(zé)處理平衡請求,也就是重新分布負(fù)載請求.
RAC環(huán)境后臺進(jìn)程:
LMON(鎖監(jiān)視器):監(jiān)視集群中的所有實(shí)例,檢測實(shí)例是否有失敗.在實(shí)例離開或重新加入集群時重新配置鎖和其他資源。
LMD(鎖管理器守護(hù)進(jìn)程):它為全局緩存服務(wù)(保持塊緩沖區(qū)在實(shí)例間一致)處理鎖管理器服務(wù)請求.
LMSn(鎖管理器服務(wù)器進(jìn)程):主要維持SGA塊緩沖區(qū)緩存在各個RAC實(shí)例間相互保持一致.
LOCK(鎖進(jìn)程):與LMD相似,但它處理所有全局資源的請求.
工具后臺進(jìn)程
CJQO和Jnnn(作業(yè)隊(duì)列進(jìn)程):oracle通過一種稱為快照的數(shù)據(jù)庫對象來提供復(fù)制特性,作業(yè)隊(duì)列就是刷新快照時使用的內(nèi)部機(jī)制.
QMNC和Qnnn(高級隊(duì)列進(jìn)程):QMNC會監(jiān)視高級隊(duì)列.并告訴從隊(duì)列中刪除等待消息的"出隊(duì)進(jìn)程":已經(jīng)有一個消息變?yōu)榭捎?它們還要負(fù)責(zé)隊(duì)列傳播.
EMNC(事件監(jiān)視器進(jìn)程):它是AQ體系結(jié)構(gòu)中的一部分,用于通知對某些消息感興趣的隊(duì)列.
DMnn和DWnn(數(shù)據(jù)泵主進(jìn)程/工作進(jìn)程):數(shù)據(jù)泵是oracle 10g r1中新增的特性,主要用來替代EXP/IMP。
其他后臺進(jìn)程
PSPO(進(jìn)程生成器進(jìn)程):它主要負(fù)責(zé)生成各個后臺進(jìn)程.
VKTM(虛擬時間管理器進(jìn)程):為oracle實(shí)例實(shí)現(xiàn)一個一致的、細(xì)粒度的時鐘.
SMCO(空間管理協(xié)調(diào)器進(jìn)程):協(xié)調(diào)數(shù)據(jù)庫的主動空間管理。
更多信息請查看IT技術(shù)專欄