ITPub博客

首页 > 数据库 > MySQL > binlog_ignore_db陷阱之备库无法同步

binlog_ignore_db陷阱之备库无法同步

原创 MySQL 作者:myownstars 时间:2015-07-02 11:19:36 2 删除 编辑
问题描述:
新上线的主备从库(5.5 + statement),自从备库建立并且change master指向主库后,就无法接受主库新产生的数据;
备库执行show slave status,IO和SQL thread都是running并且exec_master_postion和主库的show master status输出一致;
手工在主库新建一个库,新建表并插入然后提交,备库可以同步;

解决思路:
查看主库的binlog,发现该项目上线10天左右,总共只产生一个binlog且只有不到1M的大小;
查看binlog内容,myslqbinlog binlog >> /tmp/binlog.txt,发现记录内容少的可怜,只有刚刚手工执行的建库建表sql被记录下来,再往前就是10天前搭建slave时执行的测试sql;
查看主库的my.cnf,发现有binlog_ignore_db=mysql,information_schema, performance_schema;
发现问题,当使用binlog_ignore_db选项时,必须采用use db; sql;的书写方式,而类似insert into schema.table的语句则不会被记录到binlog;
我们手工测试的时候采用了use db;sql的方式,所以备库可以同步此信息,而应用大部分采用schema.table的方式,故备库无法同步主库数据,因为主库根本没有记录进binlog;

解决方法:
去除主库的binlog_ingore_db;重新搭建备库;
制定sql规范,禁止采用schema.table语法;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-1720066/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-03-18

  • 博文量
    375
  • 访问量
    3090664