久違和難得的Oracle學習,瞭解部分後臺程式(未完)

louloueva發表於2009-02-08

春節前弄RMAN的過程中,曾經穿插著看了一下Oracle中的程式
當時看的是整體上的分類等概念,今天來具體看看一部分後臺程式

Oracle資料庫在執行過程中,後臺會執行著多個程式,叫做後臺程式
可以通過V$BGPROCESS檢視檢視關於後臺程式的一些資訊
根據一篇Oracle官方文件,按順序簡單記錄幾個

DBWn(n取0~9,a~j),資料庫寫程式
負責將Oracle資料庫緩衝區的髒緩衝寫到資料檔案內
(髒緩衝是已經被修改,但未寫入資料檔案的資料)
為了保證緩衝區能有空餘緩衝供使用者使用
DBWn會根據LRU(最近最少使用)演算法找出相應的髒緩衝,並將其寫入資料檔案
初始引數DB_WRITER_PROCESSES,可以設定Oracle的DBWn程式個數(最大20)
對於單處理器的環境,多個DBWn並不會提供更高效能
如使用者未指定此引數,Oracle會自動根據使用者系統情況進行設定
DBWn在將髒緩衝寫入的時候,一次可以寫入多個資料塊的資料
DBWn可以週期地,或在資料緩衝區不足時,執行髒緩衝寫入操作

LGWR,日誌寫程式,負責將相關資料寫入redo log
使用者程式提交某個事務的時候,會寫入一個提交記錄
而redo log緩衝區的內容是主要寫入物件,有幾種觸發條件
每三秒寫入一次
redo log緩衝區被使用了三分之一以上的時候
當DBWn寫入髒緩衝之前,還含有未寫入redo log的redo record
LGWR寫入redo log的時候,會自動往日誌組其它映象成員寫入同樣內容
如某個成員無法寫入,LGWR也會繼續寫入其它成員
還會在trace檔案和alert日誌中記錄一條錯誤資訊
如整個日誌組都無法使用(檔案丟失、損壞,或日誌未歸檔等原因)
LGWR將無法繼續工作
使用者提交事務時,會被分配一個SCN,用來在RAC和分散式資料庫中執行同步恢復操作
LGWR可以一次寫入多個提交記錄

CKPT,檢測點程式,以前瞭解檢測點事件的時候提到過
其主要作用是在檢測點時間發生時為Oracle更新資料檔案頭,記錄檢測點的詳細資訊

SMON,系統監視器程式,需要時可對資料庫進行恢復
清理資料庫無用臨時段,合併字典管理表空間內連續的空閒區
SMON定期地檢查資料庫系統是否需要此程式執行相關操作
其它程式可在需要時呼叫SMON

PMON,程式監視器程式
在某個使用者程式出現問題後,負責清理使用者程式所佔用的系統資源和資料庫緩衝區
PMON會定期檢查排程器和服務程式狀態,如果有必要,會重啟某些停止的程式
PMON還將在網路監聽中註冊排程器程式和資料庫例項的相關資訊
PMON也會定期檢查系統或其它程式是否需要此程式執行相關操作

今天就先看到這兒吧
有日子沒弄Oracle管理方面的知識……看的時候稍微生疏了些
沒轍,自己的腦子也不過是大眾程度而已
最近一段時間,也就週末有可能看看Oracle
平時也許會弄弄白天接觸的東西(比如C# WinForm,JAVA什麼的)
爭取早日適應這種頻繁變換的學習物件 ^_^

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

相關文章