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