mysql主从同步保证数据一致性

本文探讨了在数据库复制中如何通过二阶段提交来保证RedoLog和Binlog之间的数据一致性。在阶段1,InnoDB RedoLog写盘并进入prepare状态;在阶段2,binlog写盘后,事务正式提交。当binlog异常时,可通过查找最后一个合法event来清除无效的binlog,确保数据恢复的准确性。
摘要由CSDN通过智能技术生成

因为从库是通过binlog来复制同步主库数据的,万一redolog和binlog数据不一致怎么办,redolog更新主库。实际上可以通过二阶段提交来保证redo log和binlog的数据是一致的。
阶段1:InnoDB redo log 写盘,InnoDB 事务进入 prepare 状态
阶段2:binlog 写盘,InooDB 事务进入 commit 状态
每个事务binlog的末尾,会记录一个 XID event,标志着事务是否提交成功,也就是说,恢复过程中,binlog 最后一个 XID event 之后的内容都应该被 purge。
当binlog没有正常关闭,那可能就是mysql server挂了,那就找到最后一个合法的event,删除后面无效的binlog.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值