解决MySql主从同步不一致问题

Posted 17学习网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决MySql主从同步不一致问题相关的知识,希望对你有一定的参考价值。

前言


      由于误操作,master库其中一个binlog文件被删除,导致主从同步出问题,尝试通过Change master更新同步位置,但是报找不到binlog文件问题,在网上找到percona-toolkit,该工具主要用来检测主从一致性和修复不一致行,不过该工具必须是主从同步正常的状态下才能使用,这就和初衷不符。只能先解决同步问题。将主库的备份文件还原到从库,因为主库服务没有停,期间有一些数据变动需要再同步,这时候再用到percona-toolkit。来源参考:https://www.cnblogs.com/kevingrace/p/6261091.html

主要用到的两个功能是:pt-table-checksum和pt-table-sync。

步骤


  1. percona-toolkit安装,安装到master

    # wget https://www.percona.com/downloads/percona-toolkit/2.2.7/RPM/percona-toolkit-2.2.7-1.noarch.rpm

    # rpm -ivh percona-toolkit-2.2.7-1.noarch.rpm

  2. 安装依赖的软件包

    # yum install perl-IO-Socket-SSL perl-DBD-mysql perl-Time-HiRes perl perl-DBI -y

  3. 在主库执行授权

    mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,CREATE,DELETE,INSERT,UPDATE ON *.* TO 'sql_holder'@'3.9.8.13' identified by '123456';
    mysql> flush privileges;

  4. 在从库上执行授权

    mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,CREATE,DELETE,INSERT,UPDATE ON *.* TO 'sql_holder'@'3.9.8.13' identified by '123456';
    mysql> flush privileges;

  5. 在主库上对复制一致性进行检查:

pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=gxb.checksums --create-replicate-table --databases=gxb --tables=t_com_main  h=3.9.8.13,u=sql_holder,p=123456,P=3306

  6. 在主库上执行修复:

pt-table-sync --replicate=gxb.checksums --databases=gxb --tables=t_com_main  --charset=utf8 h=3.9.8.13,u=sql_holder,p=123456 h=3.9.8.12,u=sql_holder,p=123456 --print

--execute: 执行命令

--print: 打印,但不执行命令

第一个h是主库的IP,用户,密码,第二个是slave的IP,用户,密码

   7. 再次检查一致性

pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=gxb.checksums --create-replicate-table --databases=gxb --tables=t_com_main  h=3.9.8.13,u=sql_holder,p=123456,P=3306

【注意】

  1. Waiting for the --replicate table to replicate to XXX
    问题出在 percona.checksums 表在从库不存在,根本原因是没有从主库同步过来,所以看一下从库是否延迟严重

  2. 修复一致性后出现中文变成?的问题

    执行第6步是需要加上关键参数--charset=utf8

以上是关于解决MySql主从同步不一致问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql主从同步不一致解决方案

如何解决主从数据库同步延迟问题

AWS RDS MySQL 主从同步延迟总结

[精选] MySQL主从同步延迟问题,数据一致性问题,你如何去解决

13产生MySQL主从同步延迟的问题及解决方案

一种粗暴快速的解决mysql主从不同步错误的思路