服务配置:一主一从,版本都是 5.5 。主库配置了 binlog-do-db binlog-ignore-db

问题复述:运营人员发现,昨天的数据统计不对。数据分析服务查询的是从库的数据。

到tomcat-manager查看数据收集接口的请求次数、失败次数都是正常。说明在主库数据已经收集到了。而从库没有数据,那就是主从同步出现问题。

在从库执行: show slave status;

从库的SQL线程在执行 insert 语句时报错,导致同步过程停止。而IO线程是正常的,binlog已经正常传到从库。

insert 的报错原因是从库没有pkg_info这个数据库,却要执行insert语句。

解决办法一

1.停止 从库 线程 stop slave

2.在从服务上创建pkg_info数据库、创建数据表。

3. 开启 slave  start slave

4. 查看从服务状态 show slave status;

观察 seconds_behind_master 的值,在三分钟内,它的值从 70000多 变为 0.

基本达到了完全同步。

解决办法二

从库配置slave_skip_errors=ON

总结:如果一个数据库不需要被主从同步,binlog-do-db中没有配置这个数据库,会让ddl无法同步到从库,但是dml还是会被同步到从库。

所以,想在主从同步时完全忽略一个数据库,一定把这个数据库配置在 binlog-ignore-db。

05-11 09:23