對於增量檢查點工作原理的理解
一、理解幾個概念:
檢查點佇列是什麼:
資料緩衝池中髒塊佇列
佇列的髒塊隊尾的增長由伺服器程式來維護
佇列的使用者為DBWn,即DBWn不斷的去讀取檢查點佇列,並將髒塊寫入資料檔案中
佇列裡有個比較重要的概念:檢查點位置,由CKPT來維護
checkpoint position是什麼:
檢查點位置( checkpoint position),由CKPT來維護,CKPT不斷的去檢視DBWn的寫入進度,如果此次看到的DBWn寫入的最後一塊已經寫入資料檔案的資料塊和上次看到的不一致,說明CKPT從上次檢查到這次檢查期間,DBWn又寫了一些髒塊到資料檔案中,這時候要維護checkpoint position,更新為指向DBWn最後一次寫入資料檔案的資料塊。
綜上:檢查點位置可以保證的是:檢查點位置之前的髒塊都已經寫入資料檔案,之後的髒塊都還沒有寫入資料檔案。
DBWR的工作內容:
不斷的將檢查點佇列裡的髒塊按照順序寫入資料檔案中,寫入之前需要去看自己的RBA指向的redo log是否寫入online redo log中,只有RBA指向的redo log塊已經成功寫入online redo log,才能繼續完成資料塊的寫入。
LGWR的工作內容:
不斷的將redo log buffer裡的資料寫入online redo log中。
CKPT的工作內容:
官方文件介紹:
1.The checkpoint process (CKPT) updates the control file and data file headers with checkpoint information and signals DBWn to write blocks to disk.
2.Checkpoint information includes the checkpoint position, SCN, location in online redo log to begin recovery, and so on.
3.CKPT does not write data blocks to data files or redo blocks to online redo log files.
即:
1.檢查點程式更新控制檔案和資料檔案頭部的檢查點資訊,並且通知DBWn將資料塊寫入磁碟中。
2.檢查點資訊包括檢查點位置,SCN,online redo log裡開始例項恢復的地方,等等。
3.檢查點程式是不會直接寫資料檔案或者線上重做日誌檔案的。
個人理解:
定期去檢視DBWR的寫入進度,即看DBWR已經完成了哪些髒塊的寫入,並維護checkpoint position。
理解重點:DBWR在寫入髒塊前,會去觸發LGWR對該塊的日誌的寫入,確保該髒塊相關聯的redo log一定已經寫入redo日誌。
二、若資料庫例項崩潰,例項恢復期間所做的內容:
恢復的起點:控制檔案中記錄的最新的RBA指向的online redo log記錄。
恢復的終點:online redo log檔案最後寫入的redo log塊的最後一條記錄。
恢復的過程:將恢復起點到終點之間的redo記錄重新執行一遍。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30167136/viewspace-1483355/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全域性檢查點和增量檢查點
- Oracle 檢查點佇列與增量檢查點Oracle佇列
- 全域性檢查點和增量檢查點(zt)
- Oracle完全檢查點和增量檢查點詳解Oracle
- 增量檢查點(incremental checkpoint)的解疑REM
- 【效能優化】增量檢查點優化
- ORACLE增量檢查點,LRBA,BWROracle
- OCP知識點講解 之 檢查點佇列與增量檢查點佇列
- oracle ckpt檢查點型別(增量及常規完全檢查點)checkpointOracle型別
- 【TUNE_ORACLE】Oracle檢查點(三)增量檢查點四個關鍵引數介紹Oracle
- 關於oracle的ckpt(檢查點程式)Oracle
- 理解 HTTPS 的工作原理HTTP
- 12c 物化檢視 - 理解完全重新整理的物化檢視工作原理
- buffer cache實驗4-ckptq的工作機制與增量檢查點及fast_start_mttr_target引數AST
- 對GPDB查詢計劃的Motion結點的理解
- 生產裝置點巡檢的工作原理和使用流程
- Servlet 工作原理解析Servlet
- 乾貨:HashMap的工作原理解析HashMap
- 對Thrift的一點點理解
- 關於資料檔案頭的檢查點SCN
- 對於BFC的理解
- 對於MVVM的理解MVVM
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 我對EVE的一點點理解
- 深入理解HTTPS工作原理HTTP
- 改變ogg抽取程式檢查點檔案中的檢查點
- 使用物化檢視查詢重寫 優化對於 UNION ALL檢視的CONNECT BY查詢優化
- 關於latch的一點點理解
- 對React一些原理的理解React
- 個人對於vue的理解Vue
- 對於button元素的理解
- 關於對Host的理解
- 對於Database recovery的理解Database
- 點陣圖索引的工作原理 - Richard索引
- Oracle 檢查點涉及的SCNOracle
- 金融套利策略:理解統計套利的工作原理
- 用三張圖理解深度學習的工作原理深度學習
- 關於資料檔案頭的檢查點SCN知識