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