redolog两阶段提交

1,668 阅读1分钟

redo log和binlog采用两阶段提交,目的是为了双方能多一个选择,在mysql宕机时,如果redo log处于commit,事务直接提交,如果redo log处于prepare, binlog完整事务也提交,只有在binlog不完整时,事务会回滚,以前更新数据页会丢失。

redo log如何和binlog联系在一起,XID,在服务重启启动时,会扫描redolog中 xid字段到binlog中,找相对应的事务,判断binlog的状态是否需要提交

redo log和redo buffer的联系?即在数据更新时,会先写redo buffer, 因为这样可以在写redo log时,先把数据保存起来,在commit时在把数据写入redo log中,因为这样更新的时候会更快,直接更新内存,在事务处于cmmit时,才将内存中的数据写到redo log中