SQLServer的檢查點、redo和undo
SQLServer的檢查點、redo和undo
檢查點與恢復效率的關係
檢查點將髒資料頁從當前資料庫的緩衝區快取記憶體重新整理到磁碟上。 這最大限度地減少了恢復時必須重做(Redo)的修改量。
為什麼在日誌檔案中設定了檢查點之後,基於日誌的恢復機制就可以提高效率了呢?如圖所示為檢查點發生時可能的事務的狀態。
① 事務1
其start和commit日誌記錄都發生在檢查點之前,這樣的事務其結果已經反映到物理介質上去了(因為檢查點會保證WAL協議,確保資料被寫入),所以在恢復時無須對該事務做Redo操作。
② 事務2
其start日誌記錄在檢查點之前發生,其commit記錄在故障點之前發生,說明日誌中事務已經完美提交,但資料不一定已經寫入,所以屬於圓滿事務,需要Redo操作。
③ 事務3
其start日誌記錄在檢查點之後發生,其commit記錄在故障點之前發生,說明日誌中事務已經完美提交,但資料不一定已經寫入,所以屬於圓滿事務,需要Redo操作。
④ 事務4
其start日誌記錄在檢查點之後發生,其commit記錄在故障點之前尚未發生,說明日誌中事務為中止事務,需要Undo操作。
⑤ 事務5
其start日誌記錄在檢查點之前發生,其commit記錄在故障點之前尚未發生,說明日誌中事務為中止事務,需要Undo操作。
由CheckPoint的機制可以看出,由於記憶體中的資料往往比持久化儲存中的資料更新,而CheckPoint保證了這部分資料能夠被持久化到磁碟,因此CheckPoint之前的資料一定不會再需要被Redo。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2661050/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle的redo和undoOracle
- Sqlserver沒有單獨的undo檔案,使用tempdb和redo log來存放undo資料SQLServer
- Innodb檢查點和redo寫盤時機
- undo log和redo log
- 【TUNE_ORACLE】Oracle檢查點(四)檢查點對redo日誌的影響和redo日誌大小設定建議Oracle
- MySQL中的redo log和undo logMySql
- Oracle Redo and UndoOracle Redo
- 【REDO】Oracle redo undo 學習Oracle Redo
- MySQL Undo Log和Redo Log介紹MySql
- 深入理解MYSQL undo redoMySql
- MySQL redo與undo日誌解析MySql
- Oracle完全檢查點和增量檢查點詳解Oracle
- 基於Redo Log和Undo Log的MySQL崩潰恢復流程MySql
- 深入理解MySQL系列之redo log、undo log和binlogMySql
- 淺析MySQL事務中的redo與undoMySql
- 檢查及設定合理的undo表空間
- 必須瞭解的mysql三大日誌-binlog、redo log和undo logMySql
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- 【TUNE_ORACLE】Oracle檢查點(二)檢查點效能Oracle
- 3000幀動畫圖解MySQL為什麼需要binlog、redo log和undo log動畫圖解MySql
- mysql日誌:redo log、binlog、undo log 區別與作用MySql
- MySQL中redo log、undo log、binlog關係以及區別MySql
- 硬核乾貨!一文掌握 binlog 、redo log、undo log
- Oracle 檢查點涉及的SCNOracle
- 揭示檢查點的祕密
- 資料庫篇:mysql日誌型別之 redo、undo、binlog資料庫MySql型別
- 【TUNE_ORACLE】Oracle檢查點(一)檢查點(Checkpoint)概念介紹Oracle
- Canvas圖形編輯器-資料結構與History(undo/redo)Canvas資料結構
- 查詢SQLServer的客戶端IP和主機名SQLServer客戶端
- 【TUNE_ORACLE】Oracle檢查點(五)建立並利用Statspack定位檢查點故障Oracle
- 達夢資料庫:誤刪除 undo/redo 日誌怎麼辦資料庫
- Sqlserver的表沒有高水位但是有碎片的概念,sqlserver表的碎片的檢視和整理方法SQLServer
- Sqlserver資料庫郵件的體系結構及常用的查詢檢視SQLServer資料庫
- MySQL binlog和redo的組提交MySql
- MySQL中的redo log和checkpointMySql
- 檢視Oracle的redo日誌切換頻率Oracle
- 【TUNE_ORACLE】Oracle檢查點(三)增量檢查點四個關鍵引數介紹Oracle
- 檢視sqlserver的某程式的sql文字SQLServer