程式結構

brj880719發表於2017-11-20

一、資料寫入程式(DBWn)

資料寫入程式是Oracle的一個後臺程式,所謂後臺程式是相對於前臺程式(伺服器程式)來講的。DBWn的"n"意味著一個例項是可以有多個資料庫寫入器的。
作用
簡而言之,DBWn的作用就是將變髒了的緩衝區從資料庫緩衝區快取中寫入到磁碟中的資料檔案中去。
會話的更新,插入,刪除包括查詢等都是先作用到緩衝區上,隨後,DBWn會將其中的髒緩衝區轉儲到磁碟上去。 
以下四種情況DBWn會執行寫入
1、沒有任何可用緩衝區(不得不寫啊)
2、髒緩衝區過多
3、3秒超時(最晚3秒會執行一次寫入)
4、遇到檢查點,即checkPoint(檢查點),檢查點是個Oracle事件,遇到檢查點,DBWn會執行寫入。比如例項有序關閉的時候會有檢查點,DBWn會將所有髒緩衝區寫入到磁碟上去的,這很容易理解,要保持資料檔案的一致性。

二、日誌寫入程式(LGWR)

日誌寫入程式(LGWR)就是把日誌緩衝區內的內容寫入到磁碟的重做日誌檔案中去,相比資料庫寫入器(DBWn),日誌寫入器就勤快多了。
以下五種情況LGWR會執行寫入
1、log buffer裡寫滿1M了。
2、每三秒將日誌緩衝區輸出。
3、當日志緩衝區的1/3已滿時將日誌緩衝區輸出。
4、當使用者程式提交一事務時寫入一個提交記錄。
5、當DBWR將修改緩衝區寫入磁碟時則將日誌緩衝區輸出。

三、SMON(System Monitor)

它的主要職責有如下:
1、例項恢復
2、每3秒整理區碎片
3、清理臨時段

四、PMON(Process Monitor)

程式監視程式,主要監視伺服器程式。
當碰到了程式異常,將做如下處理
1、釋放該程式的buffer cache資源
2、程式相關的鎖資源
3、其他資源,比如程式號等資訊,v$process可以看到的一些資訊
4、檢查排程器和伺服器程式,來實現排程器分配請求佇列和響應佇列
5、PMON還有一個任務,它可以實現服務註冊

五、CKPT(Checkpoint Process)

檢查點是一個維護資料庫一致性的重要的後臺程式
檢查點是一個資料庫事件,它將已修改的資料從髒快取裡重新整理到磁碟,並更新控制檔案和資料檔案的一致性資訊
手動設定檢查點的語法
alter system checkpoint;

六、MMON(Manageability Monitor)

  資料庫的自我監視和自我調整的支援程式。例項在執行中,會收集大量有關例項活動和效能的統計資料,這些資料會收集到SGA中,MMON定期從SGA中捕獲這些統計資料,並將其寫入到資料字典中,便於後續對這些快照進行分析。(預設情況,MMON每隔一個小時收集一次快照)

七、ARCn(Archiver)

歸檔程式,這個程式是可選的,如果資料庫配置為歸檔模式,這個程式就是必須的。

八、RAC相關後臺程式

1、鎖監視器(Lock monitor,LMON)程式
2、鎖管理器守護(Lock manager daemon,LMD)程式
3、鎖管理器伺服器(Lock manager server,LMSn)程式
4、可診斷性守護(Diagnosability daemon,DIAG)程式
5、鎖(Lock,LCK0)程式
6、CRS相關的程式

九、ASM相關程式

ASM例項除了傳統的DBWR,LGWR,CKPT,SMON,PMON等程式還包含如下後臺程式:
1、自動儲存管理後臺(Automatic Storage Management Background,ASMB)程式: ASMB與ASM 例項的前臺程式連線,週期性的檢查兩個instance的健康狀況。每個資料庫例項同時只能與一個ASM例項連線,因此資料庫只會有一個ASMB後臺程式。
2、重新平衡(Rebalance,RBAL)程式:負責協調磁碟組的重新平衡活動(負責磁碟組均衡)
3、CJQ0 和Jnnn 程式:作業佇列
4、QMNC 和Qnnn:高階佇列
5、EMNn:事件監視器程式(Event Monitor Process)
6、MMAN:記憶體管理器(Memory Manager)
7、ARB0-ARBn:在同一時刻可以存在許多此類程式,它們分別名為ARB0、ARB1,以此類推,執行實際的重新平衡分配單元移動程式。
8、GMON:用於ASM磁碟組監控
9、O0nn 01-10:這組程式建立到ASM例項的連線,某些長時間操作比如建立資料檔案,RDBMS會通過這些程式向ASM傳送資訊。

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

相關文章