为什么需要两阶段提交

如果不是两阶段提交,只能要么先redo,再binlog。要么先binlog,再redolog。看一下会有什么问题
假设使用一下语句进行更改

update table set id = 1 where id =0;

先redo 再binlog

先写redo,然后crash了,binlog没同步上。就会导致crash重建时,有了id=1的记录,但是用binlog去同步其他从节点时,依旧是id=0;

先binlog再redo

先写binlog,然后crash了,redo log没同步上。就会导致crash重建时无法进行id=1记录的恢复,实际上id=1的操作就丢失了,但是在binlog中却保存了,用binlog去同步其他从节点时,id=1;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容