zoukankan      html  css  js  c++  java
  • mysql主从同步工具--pt-table-sync

    下载链接

    https://www.percona.com/downloads/percona-toolkit/LATEST/

    官方文档

    https://www.percona.com/doc/percona-toolkit/LATEST/pt-table-sync.html

    安装(以谁为参照库在那个机器进行安装,一般主库机器安装)

    包名:percona-toolkit-3.3.1-1.el7.x86_64.rpm

    安装命令:

    rpm -ivh percona-toolkit-3.3.1-1.el7.x86_64.rpm
    

    如果安装过程报以下错误则需要提前安装依赖包

    • yum install perl-DBI

    • yum install perl-DBD-MySQL

    • yum install perl-Time-HiRes

    • yum install perl-IO-Socket-SSL

    • yum install perl-Digest-MD5

    使用

    通过pt-table-checksum发现主从数据不一致的话,可以通过pt-table-sync来同步数据。

    在使用pt_table-sycn 工具时指定的mysql用户需要具有增删改查访问主从数据库等特定权限。

    参数说明

    参数 说明
    --replicate 指定通过pt-table-checksum得到的表,这2个工具差不多都会一直用。
    --databases 指定执行同步的数据库,多个用逗号隔开。
    --tables 指定执行同步的表,多个用逗号隔开。
    --sync-to-master 指定一个DSN,即从的IP,他会通过show processlist或show slave status 去自动的找主。
    h=127.0.0.1 服务器地址,命令里有2个ip,第一次出现的是M的地址,第2次是Slave的地址。
    u=root 帐号。
    p=123456 密码。
    --print 打印,但不执行命令。
    --execute 执行命令。

    master 表状态

    slave 表状态

    可以看到从库比主库多一条数据,且ID为3时对应的name不同

    检查主从数据不一致状态pt-table-checksum

    主库机器执行

    pt-table-checksum --nocheck-replication-filters --replicate=cmbh.checksums --databases=cmbh --tables=a h=***.***.***.***,u=***,p=***,P=3306 --no-check-binlog-format
    

    参数 注释
    TS 完成检查的时间。
    ERRORS 检查时候发生错误和警告的数量。
    DIFFS 0表示一致,1表示不一致。当指定--no-replicate-check时,会一直为0,当指定--replicate-check-only会显示不同的信息。
    ROWS 表的行数。
    CHUNKS 被划分到表中的块的数目。
    SKIPPED 由于错误或警告或过大,则跳过块的数目。
    TIME 执行的时间。
    TABLE 被检查的表名。

    pt-table-checksum 已经查出来了表数据不同步,接下来使用pt-table-sync进行数据同步(第一个ip为主库,第二个为ip从库)

    pt-table-sync --print --databases=cmbh --tables=name_info h=***.***.***.***,u=cmbh,p=***,P=3306 dsn=u=cmbh,p=***,h=***.***.***.***,P=3306  --no-check-slave
    

    可以看到打印出来了从库比主库多的那条数据和ID为3时对应的name不同的数据执行sql,只需要在从库执行sql即可使数据一致.

    建议还是用--print 打印出来的好,这样就可以知道那些数据有问题,可以人为的干预下。不然直接执行了,出现问题之后更不好处理。总之还是在处理之前做好数据的备份工作。

    参考资料

    https://www.cnblogs.com/gomysql/p/3662264.html

    https://www.cnblogs.com/paul8339/p/9871879.html

  • 相关阅读:
    常见算法复杂度解析
    Linux shell脚本根据文件路径信息获取路径和名称
    linux 目录递归替换差异文件
    Linux普通用户具备root用户操作权限
    java线上异常定位工具
    OCR
    国内镜像
    hadoop镜像
    处理Jsp出现乱码问题
    无缝滚动
  • 原文地址:https://www.cnblogs.com/whiteY/p/14950588.html
Copyright © 2011-2022 走看看