服务配置:一主一从,版本都是 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。