数据库MGR宕机后重启顺序异常导致的主从库数据不同步

数据库MGR宕机后重启顺序异常导致的主从库数据不同步

问题描述:

公司的一个项目,MGR采用的是一写多读的单主模式,用proxysql处理读写分离,环境是centOS7.6,数据库版本是5.7.32。

MGR在正常情况下使用没有任何问题,但是问题出在宕机之后重启,如果重启顺序正常(先主后从),也没有问题,从会自动同步主的数据。

但是如果是启动顺序异常,之前的主节点现在以从的身份加入到集群中,就会经常出错。我做了一个示意图:

img

一开始两个数据库都只有1,2两条数据。

s1断开之后,s2变为主继续使用,然后加了一条数据300。

这时候s2宕机了,这时候需要重启s1和s2,如果s1是从s2是主,没问题,数据自动同步。但是反过来,s1主,s2从,s1不会更新自己的数据。

在t5这个时间段之后,s2比s1多一条数据,但是此时集群中已经主从不同步了。

想问问大家有没有方法避免或者解决方案,或者是数据库同步方案。

主库数据的备份直接导入从库,然后重新启动

主库数据的备份直接导入从库,然后重新启动...

navicat 自带数据同步的工具,你可以看看
【工具】-【数据同步】,可以让navicat帮你分析两个数据库的差别,然后导出insert和delete语句。