ORACLE後臺程式

jichengjie發表於2017-12-11
oracle後臺程式伴隨例項的啟動而啟動,他們主要是維護資料庫的穩定,相當於一個企業中的管理者及內部服務人員。他們並不會直接給使用者提供服務。
 
一:database write--資料寫入  DBWR
   作用:把SGA中被修改的資料同步到磁碟檔案中。保證Buffer Cache中有足夠的空閒資料塊數量。
   PS:如果LGWR出現故障,DBWR不會聽從CKPT命令罷工,因為Oracle在將資料快取區資料寫到磁碟前,會先進行日誌緩衝區寫進日誌檔案的操作,並耐心的等待其先完成,才會去完成這個記憶體刷到磁碟的動作,這就是所謂的凡事有記錄。
   觸發條件: 1、檢查點CKPT 
                2、一個服務程式在設定的時間內沒有找到空閒塊
                3、每三秒自動喚醒一次。
   設定:DB_WRITER_PROCESS用來定義DBWn程式數量。(commit命令只是把記錄修改寫入日誌檔案,不是把修改後的資料寫入資料檔案)
 
二:log write:LGWR--日誌檔案寫入  (勞模,很重要很忙碌的一個程式)
   作用:把log buffer中的日誌內容寫入聯機的日誌檔案中,釋放log使用者buffer空間。
   觸發條件:1、使用者發出commit命令。(在oracle中稱為快速提交機制(fast commit)):把redo log buffer中的記錄寫入日誌檔案,寫入一條提交的記錄
            2、三秒定時喚醒。
            3、日誌緩衝區log buffer超過1/3,或日誌數量超過1M。
            4、DBWR程式觸發:DBWn檢視將髒資料塊寫入磁碟先檢測他的相關redo記錄是否寫入聯機日誌檔案,如果沒有就通知LGWR程式。在oracle中成為提前寫機制(write ahead):redo記錄先於資料記錄被寫入磁碟
            5、聯機日誌檔案切換也將觸發LGWR。
 
三:checkpoint:CKPT-檢查點事件
   作用:維護資料庫一致性狀態。檢測點時刻資料檔案與SGA中的內容一致,這不是一個單獨的程式,要和前兩個程式一起工作呦。DBWR寫入髒資料,同時觸發LGWR程式。
      CKPT更新控制檔案中的檢查點記錄。透過設定某引數調整來控制CKPT的觸發時間。引數是FAST_START_MTTR_TARGET。
   觸發條件:日誌切換(log switch)會觸發檢查點。
 
四:process monitor:PMON--維護使用者程式  程式監控器
   作用:1、發現使用者程式異常終止,並進行清理。釋放佔用資源。(清理異常終止使用者使用的鎖)
        2、向監聽程式動態的註冊例項。
   觸發條件:定時被喚醒,其他程式也會主動喚醒它。
 
五:system monitor:SMON--例項維護程式  系統監控器
   作用:1、負責例項恢復,前滾(Roll Forward)恢復到例項關閉的狀態,使用最後一次檢查點後的日誌程式重做。這時包括提交和未提交的事務。開啟資料庫,進行回滾(Roll Back):回滾未提交的事務。(oracle承諾commit之後資料不會丟失,現在我們可以大致的瞭解是如何實現這個承諾,以及在資料的安全性和資料庫效能之間的平衡選擇。)
        2、負責清理臨時段,以釋放空間
   觸發條件:定期被喚醒或者被其他事務主動喚醒。
 
六:LCKn 僅適用於RAC資料庫,最多可有10個程式(LCK0,LCK1,...,LCK9),用於例項間的封鎖。
 
七:archive:ARCH--歸檔操作
   作用:發生日誌切換時把寫滿的聯機日誌檔案複製到歸檔目錄中。(LGWR寫日誌寫到需要覆蓋重寫的時候,觸發ARCH程式去轉移日誌檔案,複製出去形成歸檔日誌檔案,以免日誌丟失)
   觸發條件:日誌切換時被LGWR喚醒。
   設定:LOG_ARCHIVE_MAX_PROCESSES可以設定oracle啟動的時候ARCH的個數。
 
八:Distributed Database Recovery  --RECO  用於分散式資料庫的恢復
   某個應用跨越多個資料庫,需要都提交成功,事務才會成功,否則全部回滾。
 
以上是八個最核心、最重要、最有用程式,以下還列出了一些程式。
 
九:manageability monitor:MMON--AWR主要的程式
   作用:1、收集AWR必須的統計資料,把統計資料寫入磁碟。10g中儲存在SYSAUX表空間中。
        2、生成server--generated報警
   每小時把shared pool中的統計資訊寫入磁碟,或者shared pool佔用超過15%。 
十:manageability monitor light:MMNL:輕量級的MMON 
十一:memory manager:MMAN:自動內容管理
   作用:每分鐘都檢查AWR效能資訊,並根據這些資訊來決定SGA元件最佳分佈。
   設定:STATISTICS_LEVEL:統計級別
        SGA_TARGET:SGA總大小 
十二:job queue coordinator:CJQ0--資料庫定時任務 
       Oracle的作業佇列管理依賴於後臺程式的執行,它們進行資料重新整理及其他定期的作業。排程程式CJQ0,選擇將要執行的作業並擴充套件作業佇列程式(J000-J999)以執行這些作業
十三:recover writer:RVWR
   作用:為flashback database提供日誌記錄。把資料塊的前映象寫入日誌。 
十四:change tarcking writer:CTWR
   作用:跟蹤資料塊的變化,把資料塊地址記錄到 change_tracking file檔案中。RMAN的增量備份將使用這個檔案來確定那些資料塊發生了變化,並進行備份

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26870952/viewspace-2148536/,如需轉載,請註明出處,否則將追究法律責任。

相關文章