程式結構
一、資料寫入程式(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python程式結構Python
- go程式結構Go
- PostgreSQL:程式結構SQL
- JavaScript中的程式結構和分支結構JavaScript
- particle雲架構程式碼結構架構
- java架構的程式碼結構Java架構
- HarmonyOS:應用程式包結構(1)Stage模型應用程式包結構模型
- Oracle OCP(40):程式結構Oracle
- 構建小程式總結
- Java基本程式設計結構Java程式設計
- Go 筆記之程式結構Go筆記
- Kotlin 基礎-程式結構(上)Kotlin
- java的三大程式結構Java
- 選擇結構程式設計程式設計
- 迴圈結構程式設計程式設計
- 瞭解下C# 程式結構C#
- Go語言(1)——程式結構Go
- Postgresql資料庫體系結構-程式和記憶體結構SQL資料庫記憶體
- 程式碼目錄結構記錄
- 現代 JavaScript 教程 — 程式碼結構JavaScript
- Golang 扁平專案程式碼結構Golang
- 1.3順序結構程式設計程式設計
- Python入門(六):程式控制結構Python
- Linux 核心101:程式資料結構Linux資料結構
- Electron系列文章-程式目錄結構
- 資料結構程式碼常用模板資料結構
- 07-運算子和程式結構
- python程式的三種控制結構Python
- python3 筆記9.程式流程結構--迴圈結構(while,for)Python筆記While
- C語言開發windows程式主要程式結構C語言Windows
- Spring Cloud雲服務架構 - 雲架構程式碼結構構建SpringCloud架構
- HongHu雲架構common-service程式碼結構分析架構
- 指令集體系結構_計算機體系結構:指令程式碼計算機
- web前端培訓教程中程式的順序結構及選擇結構Web前端
- 小程式的專案結構設計
- 支付寶程式碼示例結構說明
- 如何結構化我們的程式碼
- Oracle面試寶典-程式結構篇Oracle面試
- JAVA的基本程式設計結構(下)Java程式設計