0

日誌是一系列日誌記錄,它保存有關數據庫更新活動的信息。每當事務開始時,讀取,寫入或提交它都會將自己註冊到日誌中,並執行其特定操作。所以,現在,當從故障中恢復時,如果事務尚未提交,則需要撤消事務,如果事務已提交,則需要重做。我的疑問是關於這樣做背後的邏輯。爲什麼我們需要重做提交的交易?在基於日誌的恢復中,我們爲什麼重做提交事務?

參考:幻燈片19 - http://codex.cs.yale.edu/avi/db-book/db6/slide-dir/PPT-dir/ch16.ppt

+0

請在深入探討一些非常具體的問題之前,先從更多的上下文開始。 – deceze

+1

_we撤消未提交,然後重做承諾_ - 這聽起來不對。 – stuartd

+0

@stuartd這是耶魯大學教授寫的書中提到的 –

回答

0

它可以爲交易T1,它的所有日誌記錄已經輸出到穩定存儲,但對數據的實際更新仍然在主內存中是可能的。如果此時發生故障,則重新執行此事務將確保由於故障而實際上丟失的所有更新現在都會寫入穩定的存儲器。

相關問題