萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> oracle各後台進程介紹

oracle各後台進程介紹

  後台進程用來執行保證數據庫運行所需的實際維護任務。如:某個後台進程維護緩沖區緩存,根據需要將塊寫出到數據文件.

  另個進程負責在線重做日志文件寫滿時將它自己復制到一個歸檔目標.

  可以通過查詢v$bgprocess視圖看服務器當前後台進程

  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

  根據版本的不同,後台進程數、名稱、類型等都可能不同.

  中心後台進程:

  PMON(進程監視器):負責在出現異常中止的連接後完成清理.PMON還會向oracle TNS監聽器注冊通信,向它傳遞相關的參數.

  SMON(系統監視器):完成所有的系統級任務.包括以下內容:

  清理臨時空間,合並空閒空間,針對原來不可用的文件恢復活動的事務,執行RAC中失敗節點的實例恢復,清理OBJ$,收縮回滾段,‘離線’回滾段.

  RECO(分布式數據庫恢復):基於2PC分布式協議,允許多個不同的修改實現原子提交,但是在真正提交前,出現網絡失敗等錯誤,事務成為一個可疑的分布式事務.此時

  就需要RECO來負責聯系事務協調器來發現協調的結果。在這之前事務會保持未提交狀態.當恢復網絡或者錯誤解決後,RECO可能會提交事務,也可能將事務回滾.

  注:可疑分布式事務會導致寫阻塞讀的情況,即可疑分布式事務不能存在太長時間,DBA可自行手動提交或回滾.

  CKPT(檢查點進程):建立檢查點主要是DBWn的任務.CKPT主要是更新數據文件的文件首部,從而輔助真正的建立檢查點的進程.

  DBWn(數據庫塊寫入器):負責將髒塊(修改過的塊)寫入磁盤的後台進程,它會寫出緩沖區緩存的髒塊,從而釋放相應的空間.可以配置多個DBWn(上面有2個DBW0和DBW1),

  最好的情況是DBWn使用異步I/O將塊寫入磁盤.采用異步I/O,DBWn會收集要寫入的塊,交給操作系統,然後立即返回,並收集下一批要寫的塊,操作系統完成寫文件操作之後,它會異步地通知DBWn.

  LGWR(日志寫入器):它負責將SGA中重做日志緩沖區的內容刷新輸出到磁盤.一般在下面幾個情況時候,LGWR就會執行刷新操作:

  1.每隔3秒會自動刷新一次

  2.任何事務發出一個提交時

  3.重做日志緩沖區1/3滿,或者包含1MB的緩沖數據的時候.

  ARCn(歸檔進程):當LGWR將在線重做日志寫滿時,歸檔進程就將其復制到另一個位置.ARCn一般將在線重做日志至少復制到兩個位置.一般用於硬盤等介質損壞時數據庫的恢復.

  DIAG(診斷性進程):它會負責監視實例的整體狀況,捕獲處理實例失敗時所需的信息並記錄.

  FBDA(閃回數據歸檔進程):此進程為oracle 11g r1版本新增進程.主要用於閃回數據,它主要維護隨時間對表中每行所做的改變,而實現歷史數據查詢.它將讀取事務生成的UNDO,並回滾事務做出的改變,然後將回滾的這些行記錄保存在閃回數據歸檔中.

  DBRM(數據庫資源管理器進程):為數據庫實例配置資源計劃.

  GEN0(通用任務執行進程):主要是分擔另外某個進程的阻塞處理。

  可選後台進程:

  ASMB(自動存儲管理後台):該進程出現在ASM的數據庫實例中.它負責與管理存儲的ASM實例通信,向ASM實例提供更新的統計信息,並向ASM實例提供一個"心跳".

  RBAL(重新平衡進程):該進程也在使用了ASM的數據庫實例中運行,向ASM磁盤組增加或去除磁盤時,它負責處理平衡請求,也就是重新分布負載請求.

  RAC環境後台進程:

  LMON(鎖監視器):監視集群中的所有實例,檢測實例是否有失敗.在實例離開或重新加入集群時重新配置鎖和其他資源。

  LMD(鎖管理器守護進程):它為全局緩存服務(保持塊緩沖區在實例間一致)處理鎖管理器服務請求.

  LMSn(鎖管理器服務器進程):主要維持SGA塊緩沖區緩存在各個RAC實例間相互保持一致.

  LOCK(鎖進程):與LMD相似,但它處理所有全局資源的請求.

  工具後台進程

  CJQO和Jnnn(作業隊列進程):oracle通過一種稱為快照的數據庫對象來提供復制特性,作業隊列就是刷新快照時使用的內部機制.

  QMNC和Qnnn(高級隊列進程):QMNC會監視高級隊列.並告訴從隊列中刪除等待消息的"出隊進程":已經有一個消息變為可用.它們還要負責隊列傳播.

  EMNC(事件監視器進程):它是AQ體系結構中的一部分,用於通知對某些消息感興趣的隊列.

  DMnn和DWnn(數據泵主進程/工作進程):數據泵是oracle 10g r1中新增的特性,主要用來替代EXP/IMP。

  其他後台進程

  PSPO(進程生成器進程):它主要負責生成各個後台進程.

  VKTM(虛擬時間管理器進程):為oracle實例實現一個一致的、細粒度的時鐘.

  SMCO(空間管理協調器進程):協調數據庫的主動空間管理。

copyright © 萬盛學電腦網 all rights reserved