insert导致主动复制失败

Posted ChaseForFuture

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了insert导致主动复制失败相关的知识,希望对你有一定的参考价值。

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

 

以上是关于insert导致主动复制失败的主要内容,如果未能解决你的问题,请参考以下文章

C++ std::set insert 失败 原因和解决方案 operator

vim insert VISUAL模式无法右键复制问题(转)

Hibernate插入错误:GenericJDBCException: could not insert:

db2数据库insert失败,采用mybatis操作insert数据库失败,但是直接用sql直接执行就可以执行成功。

INSERT INTO .. ON DUPLICATE KEY更新多行记录

MySQL 关于表复制 insert into 语法的详细介绍