dbwn:數據寫
DBWn的"n"意味着一個實例是可以有多個數據庫寫入器的。作用簡而言之,DBWn的作用就是將變髒了的緩衝區從數據庫緩衝區緩存中寫入到磁盤中的數據文件中去。會話的更新,插入,刪除包括查詢等都是先作用到緩衝區上,隨後,DBWn會將其中的髒緩衝區轉儲到磁盤上去。
以下四種情況DBWn會執行寫入
-
沒有任何可用緩衝區(不得不寫啊)
-
髒緩衝區過多
-
3秒超時(最晚3秒會執行一次寫入)
-
遇到檢查點,即checkPoint(檢查點),檢查點是個Oracle事件,遇到檢查點,DBWn會執行寫入。比如實例有序關閉的時候會有檢查點,DBWn會將所有髒緩衝區寫入到磁盤上去的,這很容易理解,要保持數據文件的一致性。
日誌寫入進程(LGWR)
日誌寫入進程(LGWR)就是把日誌緩衝區內的內容寫入到磁盤的重做日誌文件中去,相比數據庫寫入器(DBWn),日誌寫入器就勤快多了。
以下五種情況LGWR會執行寫入
-
log buffer裏寫滿1M了。
-
每三秒將日誌緩衝區輸出。
-
當日志緩衝區的1/3已滿時將日誌緩衝區輸出。
-
當用戶進程提交一事務時寫入一個提交記錄。
-
當DBWR將修改緩衝區寫入磁盤時則將日誌緩衝區輸出。
CKPT(Checkpoint Process)
檢查點是一個維護數據庫一致性的重要的後臺進程
檢查點是一個數據庫事件,它將已修改的數據從髒緩存裏刷新到磁盤,並更新控制文件和數據文件的一致性信息
手動設置檢查點的語法
SMON(System Monitor)
它的主要職責有如下:
-
實例恢復
-
每3秒整理區碎片
-
清理臨時段
PMON(Process Monitor)
進程監視進程,主要監視服務器進程。
當碰到了進程異常,將做如下處理
-
釋放該進程的buffer cache資源
-
進程相關的鎖資源
-
其他資源,比如進程號等信息,v$process可以看到的一些信息
-
檢查調度器和服務器進程,來實現調度器分配請求隊列和響應隊列
-
PMON還有一個任務,它可以實現服務註冊