如果不是两阶段提交,只能要么先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;