Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
重做日志用于数据库崩溃后重做提交的事务。但是,提交事务的更新会在提交时写入磁盘。为什么 DBMS 使用重做日志?当事务提交时,DBMS 实际上做了什么?谢谢!
不完全是; 仅当这三个条件都不适用时,才对可重做动作执行重做:(直接引自 Ramakrishnan 和 Gehrke)
受影响的页面不在脏页表中。 受影响的页面在脏页表中,但该条目的 recLSN 大于正在检查的日志记录的 LSN。 pageLSN(存储在页面上,必须检索才能检查此条件)大于或等于正在检查的日志记录的 LSN。
受影响的页面不在脏页表中。
受影响的页面在脏页表中,但该条目的 recLSN 大于正在检查的日志记录的 LSN。
pageLSN(存储在页面上,必须检索才能检查此条件)大于或等于正在检查的日志记录的 LSN。
如果这些都不正确,则基本上意味着该操作已成功提交。