标签:
问题想象:
最近在做一个项目的生产环境迁移,采用的是《源-中继-目标》这种架构,在测试阶段,开发反应一个问题:目标端的测试数据少了两张表。第一反应是:这两张表肯定是最近新增的表。因为我们的测试数据5天前就已经停止同步生产库,最近新增的表是不会出现在测试环境的。过不期然,这两张表是新增的。于是从中继节点(中继节点是一直在同步源端生产数据的)导出一份数据再入到测试环境。检查后发现,缺少的表还是不存在。检查了中继几点到源端的主从同步,状态ok。检查了源端本身的主从复制状态也是ok。但是表就是少了。
问题原因:
后经排查发现,中继节点的主库是源端集群的从库,而该从库没有打开log_slave_updates 参数
mysql> show variables like ‘%log%slave%‘; +---------------------------+-------+ | Variable_name | Value | +---------------------------+-------+ | log_slave_updates | OFF | | log_slow_slave_statements | OFF | +---------------------------+-------+ 2 rows in set (0.00 sec)
这样的设置,会导致源端主库的操作不会同步映射到从库的binlog,也就没法同步到中继节点。这就出现了上述所说的情况。
标签:
原文地址:http://www.cnblogs.com/janehoo/p/5634097.html