1. 程式人生 > 其它 >Oracle後臺程序介紹

Oracle後臺程序介紹

Oracle後臺程序介紹

 原文:https://jingyan.baidu.com/article/6d704a1345e84628db51caa1.html  

    Oracle後臺程序是一組運行於Oracle伺服器端的後天程式,是Oracle例項的重要組成部分。這組後臺程序有若干個,它們分工明確——分別完成不同的系統功能。其中SMON、PMON、DBWR、LGWR和CKPT這5個後臺程序必須正常啟動,否則將導致資料庫例項崩潰。此外,還有很多輔助程序,用於實現相關的輔助功能,如果這些輔助程序發生問題,只會使某些功能受到影響,一般不會導致資料庫例項崩潰。

方法/步驟

  1.  

    1.資料寫入程序(DBWR):

        資料寫入程序的主要任務是負責將記憶體中的“髒”資料塊回寫到資料檔案中。“髒”資料塊是指高速資料緩衝區中的被修改過的資料塊,這些資料塊的內容與資料檔案的資料塊內容不一致。但DBWR並不是隨時將所有的“髒”資料塊都寫入資料檔案,只有滿足一定的條件時,DBWR程序才開始成批量的將“髒”資料塊寫入資料檔案Oracle這樣做的目的是為了儘量減少I/O操作,提高Oracle伺服器效能。通常在以下幾種情況發生時,DBWR程序會將“髒”資料塊寫入資料檔案:

  2.  

    2.檢查點程序(CKPT):

        檢查點程序可以看作一個事件,當檢查點事件發生時,CKPT會要求DBWR將某些“髒”資料塊回寫到資料檔案。當用戶程序發出資料請求時,Oracle系統從資料檔案中讀取需要的資料並存放到高速資料緩衝區中,使用者對資料的操作時在緩衝區中進行的。當用戶操作資料時,就會產生大量的日誌資訊並存儲在重做日誌緩衝區,當Oracle系統滿足一定條件時,日誌寫入程序(LGWR)會將日誌資訊寫入到重做日誌檔案組中,當發生日誌切換時(寫入操作正要從一個日誌檔案組切換到另一組時),就會啟動檢查點程序。

        另外,DBA還可以通過修改初始化引數檔案SPFILE中的CHECKPOINT_PROCESS引數為TRUE來啟動檢查點程序。

  3.  

    3.日誌寫入程序(LGWR):

        日誌寫入程序用於將重做日誌緩衝區中的資料寫入重做日誌檔案。Oracle系統將使用者所做的修改日誌資訊寫入日誌檔案,然後將修改結果寫入資料檔案。

        Oracle例項在執行中會產生大量日誌資訊,這些日誌資訊首先被記錄在SGA的重做日誌緩衝區中,當發生提交命令、或者重做日誌緩衝區的資訊滿1/3、或者日誌資訊存放超過3秒鐘時,LGWR程序就將日誌資訊從重做日誌緩衝區中讀出並寫入日誌檔案組中序號較小的檔案中,一個日誌組寫滿後接著寫另外一組。當LGWR程序將所有䣌日誌檔案都寫過一遍後,它將再次轉向第一個日誌檔案組重新覆蓋。

  4.  

    4.歸檔程序(ARCH):

        歸檔程序是一個可選擇的程序,只有當Oracle資料庫處於歸檔模式時,該程序才可能起到作用。若Oracle資料庫處於歸檔模式,當各個日誌檔案組都被寫滿即將被覆蓋之前,先由歸檔程序(ARCH)把即將覆蓋的日誌檔案中的日誌資訊讀出,然後再把這些“讀出的日誌資訊”寫入到歸檔日誌檔案中。

        當系統比較繁忙而導致LGWR程序處於等待ARCH程序時,可通過修改LOG_ARCHIVE_MAX_PROCESSES引數啟動多個歸檔程序,從而提高歸檔寫磁碟的速度。

  5.  

    5.系統監控程序(SMON):

        系統監控程序是在資料庫啟動時執行恢復工作的強制性程序。比如,在並行伺服器模式下,SMON可以恢復另一個處於失敗的資料庫,使系統切換到另外一臺正常的伺服器上。

  6.  

    6.程序監控程序(PMON):

        程序監控程序用於監控其他程序的狀態,當有程序啟動失敗時,PMON會清除失敗的使用者程序,用於資料不一致時進行恢復工作。

  7.  

    7.鎖定程序(LCKN):

        這是一個可選程序,並行伺服器模式下可以出現多個鎖定程序以利於資料庫通訊。

  8.  

    8.恢復程序(RECO):

        這是在分散式資料庫模式下使用的一個可選程序,用於資料不一致時進行恢復工作。

  9.  

    9.排程程序(DNNN):

        這是一個可選程序,在共享伺服器模式下使用,可以啟動多個排程程序。

  10.  

    10.快照程序(SNPN):

        快照程序用於處理資料庫快照的自動重新整理,並通過DBMS_JOB包執行預定的資料庫儲存過程。