【MySql】l为什么需要两阶段提交,解决了什么问题?

日志分类

undolog和redolog只有数据库为innoDB时才存在这两个日志
其他的日志只需要MySql服务打开就有这个功能在这里插入图片描述

数据一致性

redolog,涉及到2阶段提交,其实binlog和redolog是可以同时存在的,试想一下,如果redolog写入成功,在写入binlog的时候断电了,那么从库就无法实现同步,自然就无法保证数据的一致性,为了保证数据的一致性就出现了两阶段提交的概念。

执行流程

![在这里插入图片描述](https://img-blog.csdnimg.cn/5f7c51cb4266441ea0e9765fd8c807ab.png

两阶段提交

数据首先存储在redolog中为prepare状态,然后执行binlog如果binlog执行之前出现故障,当前主库恢复后,发现数据是prepare状态,就认为这条操作是无效的。

如果在binlog提交后修改状态时出现 故障,恢复时,检测redolog和binlog中都存在这条数据,就会重新提交为commit状态
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值