公司的一个项目,MGR采用的是一写多读的单主模式,用proxysql处理读写分离,环境是centOS7.6,数据库版本是5.7.32。
MGR在正常情况下使用没有任何问题,但是问题出在宕机之后重启,如果重启顺序正常(先主后从),也没有问题,从会自动同步主的数据。
但是如果是启动顺序异常,之前的主节点现在以从的身份加入到集群中,就会经常出错。我做了一个示意图:
一开始两个数据库都只有1,2两条数据。
s1断开之后,s2变为主继续使用,然后加了一条数据300。
这时候s2宕机了,这时候需要重启s1和s2,如果s1是从s2是主,没问题,数据自动同步。但是反过来,s1主,s2从,s1不会更新自己的数据。
在t5这个时间段之后,s2比s1多一条数据,但是此时集群中已经主从不同步了。
想问问大家有没有方法避免或者解决方案,或者是数据库同步方案。