对于单个数据库操作,它可能会影响多个页面。例如,插入操作可能导致分页。因此,数据库不使用逻辑日志进行重做操作,因为考虑的不一致(A操作影响两个页面,当系统崩溃时只有一个页面被刷新到数据中)。他们总是使用生理日志或物理日志进行重做手术。但在白羊座算法或一些数据库(例如。),它们使用逻辑日志进行撤消,这种操作可能会影响多个页面。他们为什么能这么做?当只将一些受撤消操作影响的页面刷新到磁盘,并且系统再次崩溃时,它们如何保证回滚的正确性?
发布于 2016-06-19 21:55:50
Aries也会记录恢复操作,因此恢复期间的崩溃问题(您的最后一个问题)与撤销的逻辑日志问题是正交的。一个操作可能会影响多个页面这一事实本身并不会导致一致性问题。
我认为理论上您也可以使用逻辑日志进行重做(“重做和撤消操作可以在原始白羊座纸中逻辑地执行”),但是物理上最大的好处是它是幂等的。撤销协议确保操作不会被执行超过一次。
逻辑日志有一些优点(与物理日志相比):
https://stackoverflow.com/questions/14027308
复制相似问题