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將被置於復原列表中,因為此事務尚未完成且失敗。