除了像Binlog 这种逻辑日志,基本所有的数据库系统中还会有一份预写日志(WAL),比如MySQL 中的Redo Log。这种日志最初是被设计来支持数据库的故障恢复的,即在修改真实的数据库中的数据页之前,会先将对数据页的修改内容写入Redo Log 中,一旦这时数据库因为任何原因发生故障,在重启的过程中都可以通过重放Redo Log 中的内容还原到发生故障之前的数据库状态。Redo Log 中每个记录的修改是局限于单个磁盘页的,不像逻辑日志那样可能在重放的过程中影响大量不同位置的数据内容,比如重放一个插入操作可能会导致B+ 树的分裂,修改Undo页内容,以及造成一些元信息数据的修改,这种日志称为物理日志。物理日志是直接针对物理页信息修改的。
以上内容摘自《云原生数据库原理与实践》,这本书可以在电子工业出版社天猫店购买。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。