为什么DBMS使用重做日志?

时间:2013-12-12 06:12:58

标签: transactions database redo

数据库崩溃后,

重做日志用于重做已提交的事务。但是,提交事务的更新将在提交时写入磁盘。为什么DBMS使用重做日志?事务提交时DBMS实际上做了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

不完全;只有在以下3个条件都不适用的情况下,才会对可重做动作执行重做:(直接引自Ramakrishnan和Gehrke)

  

受影响的页面不在脏页表中。

     

受影响的页面位于脏页表中,但该条目的recLSN大于要检查的日志记录的LSN。

     

pageLSN(存储在页面上,必须检索以检查此情况)大于或等于要检查的日志记录的LSN。

如果这些都不成立,那基本上意味着该行动已成功提交。