DBMS檢查點

  • 檢查點(checkpoint)是一種機制,其中所有先前的日誌都從系統中刪除並永久存儲在存儲磁片中。
  • 檢查點就像一個書簽。 在執行事務時,標記此類檢查點,然後使用事務的步驟執行事務,將創建日誌檔。
  • 當它到達檢查點時,事務將更新到資料庫中,直到那時,整個日誌檔將從檔中刪除。 然後使用新的事務步驟更新日誌檔,直到下一個檢查點,依此類推。
  • 檢查點用於聲明DBMS處於一致狀態之前的一個點,並且所有事務都已提交。

使用檢查點恢復

通過以下方式,恢復系統從此故障中恢復資料庫:

  • 恢復系統從頭開始讀取日誌檔。它將日誌檔從T4讀取到T1。
  • 恢復系統維護兩個列表,一個重做列表和一個撤銷列表。
  • 如果恢復系統看到日誌<Tn,Start><Tn,Commit>或僅<Tn,Commit>,則事務將進入重做狀態。在重做列表及其上一個列表中,將刪除所有事務,然後在保存日誌之前重新執行。
  • 例如: 在日誌檔中,事務T2和T3將具有<Tn,Start><Tn,Commit>。 T1事務在日誌檔中只有<Tn,commit>。這就是在檢查點超越後提交事務的原因。因此,它將T1,T2和T3事務置於重做列表中。
  • 如果恢復系統看到帶有<Tn,Start>的日誌但未找到提交或中止日誌,則事務將進入撤銷狀態。在撤銷列表中,撤銷所有事務,並刪除其日誌。
  • 例如: 事務T4將具有<Tn,Start>。因此,T4將被置於撤銷列表中,因為此事務尚未完成且失敗。

上一篇: DBMS基於日誌的恢復 下一篇: DBMS死鎖