美文网首页
Mysql之gtid主从同步突想问题

Mysql之gtid主从同步突想问题

作者: 君子愁 | 来源:发表于2019-11-15 11:26 被阅读0次

今天突然想了一下,一个master ,一个slave。

master的uuid为 f50c4171-f1c4-11e9-8de8-0050563a3356

slave2的uuid为 6bf23ca7-f1c9-11e9-bc34-0050562b3b5a:1

master的gtid为:

6bf23ca7-f1c9-11e9-bc34-0050562b3b5a:1,f50c4171-f1c4-11e9-8de8-0050563a3356:1-68740

slave的gtid为:

6bf23ca7-f1c9-11e9-bc34-0050562b3b5a:1-3,f50c4171-f1c4-11e9-8de8-0050563a3356:1-68740

从上面可看出slave有在自己这边执行了两个事务,而且这两个事务master那边没有同步过的。然后我就想,如果slave停止了,从新和主进行主从同步。那么会不会同步有错误。因为slave这边自己执行了两个事务,而master那边是没有的。

在slave那边,stop slave;  start slave;  ##发现同步正常

在slave那边,stop slave; reset slave all; start slave;  ##发现同步正常

这可能是bin-log日志影响吗?于是我把slave的bin-log日志清掉。

在slave那里,flush  logs;   弄个最新的bin-log出来

然后执行  purge binary logs to 'bin-log-mysqld5.000016';

然后  stop slave;start slave; ##发现同步正常

在slave那边,stop slave; reset slave all; start slave;  ##发现同步正常


这样的话,加多一个slave3,让master同步slave3的数据,然后slave3写入几个事务,然后让slave2同步slave3的数据。此时再让slave2同步master去,看看能不能正常同步。

测试结果正常:是不是slave同步master,只要发现gtid比salve小的,才同步给slave。如果slave的比master的都大,那么就不会同步过来了,也不会报错。

相关文章

网友评论

      本文标题:Mysql之gtid主从同步突想问题

      本文链接:https://www.haomeiwen.com/subject/fzsjictx.html