CKPT进程工作机制
CKPT進程工作示意圖
2.CKPT進程工作機制
?
檢查點進程被觸發的條件為:
?
a>?當發生日志組切換時;
?
b>? 用戶提交了事務時(commit);
?
c>? Redo log buffer容量達到總容量的1/3或1M時。
?
d>?手動alter system checkpoint 的時候。
?
e>? 系統正常關閉時。
?
f>? 其他(如alter tablespace .. begin backup/end backup)
?
當一個檢查點進程發生時(圖中的2),首先系統會記錄檢查點對應的checkpoint SCN,并記錄下該時刻修改的DB BUFFER對應的日志文件的最新的重做字節地址(Redo Byte Address :RBA),然后喚醒DBWn進程,DBWn進程被喚醒后將會檢查檢查點隊列(其實就是在data buffer cache緩沖區中的臟數據列表),把重做字節地址(RBA)之前的臟數據寫入磁盤文件(圖中4),在寫入之前,會檢查RBA之前的redo信息是否已經寫入聯機日志文件里,如果沒有則DBWn進程又會喚醒LGWR進程把RBA之前的redo信息寫入聯機日志文件中(圖中的5),然后DWBn再開始寫入磁盤文件并更新數據塊SCN,也是說DBWn進程把臟數據寫入磁盤之前,必須保證這些臟數據對應的日志信息已經被寫入磁盤,如果發現臟數據的日志信息沒有寫入磁盤,DBWn進程則喚醒LGWR進程寫日志信息,完成后繼續將臟數據寫入磁盤。當DBWn進程把RBA之前的臟數據全部寫入磁盤文件中,檢查點進程將會更新數據文件頭的SCN(圖中3),并更新控制文件中的SCN和RBA信息(圖中的1)。
?
轉載于:https://www.cnblogs.com/myrunning/p/4184514.html
總結
以上是生活随笔為你收集整理的CKPT进程工作机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android UI(继承控件)--Po
- 下一篇: C语音4