- 檢查點(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死鎖