关于双master节点的疑问

来源:12-7 高可用Replication集群(二)

黑马非马1013

2019-12-05

对于两个master节点高可用情况下,假如A1和A3互相订阅对方的bin_log日志,A1执行了数据更新,A3在执行同步过程中本身会再次产生相应的bin_log日志吗,那这样会不会再次被A1订阅了再次执行相同更新?请问mysql是如何避免这种情况发生的?

写回答

1回答

神思者

2019-12-05

log-slave-updates这个参数不会让同步过来的操作,记录在bin_log日志里面。看这个帖子的解释https://www.cnblogs.com/lit10050528/p/4156755.html

0
3
黑马非马1013
回复
神思者
A1和A3加上参数log-slave-updates=1,应该表示的是开启,表示A3从A1同步的数据会写入到A3binlog中,反之A1从A3同步的数据也会写入到A1的binlog中,这样保证A2和A4能够同步到最新数据,而A1从A3同步到的数据写入到A1 binlog中不会被A3同步再次重新执行更新的原因应该是server-id,binlog中记录了最初更新产生的server-id,A3服务获取到数据在执行更新的时候应该会判断是不是server-id等于自身,如果等于会忽略。这是我的理解,不知道对不对。 https://blog.csdn.net/jh993627471/article/details/79177896, https://www.linuxidc.com/Linux/2014-11/109029.htm
2019-12-05
共3条回复

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程