mysql 管理工具percona-toolkit 复制延迟时间、主从一致性检测并同步

安装

       检查环境    rpm -qa perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL   

       如有缺少则 yum安装

       下载地址:https://www.percona.com/downloads/percona-toolkit/LATEST/

使用:

pt-heartbeat  主从延迟检测

       在主库上创建heartbeat表

      CREATE TABLE `heartbeat` (
          `ts` varchar(26) NOT NULL,
          `server_id` int(10) unsigned NOT NULL,
          `file` varchar(255) DEFAULT NULL,
          `position` bigint(20) unsigned DEFAULT NULL,
          `relay_master_log_file` varchar(255) DEFAULT NULL,
          `exec_master_log_pos` bigint(20) unsigned DEFAULT NULL,
          `update_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,  --从库单独加这个字段
           PRIMARY KEY (`server_id`) 
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8

  在主库上执行pt-heartbeat命令

      pt-heartbeat -D test --update -uroot -proot  

  说明:update_time 是我自己加上去的,记录数据被修改的时间。ts是 主库的修改时间,看他俩的差异即可(最好可以展示毫      秒,但未实现出来,可能是版本问题)

 

pt-table-checksum  主从一致性检测

      pt-table-checksum --replicate=test.checksums --databases=test --nocheck-replication-filters --no-check-binlog-format --quiet  u=root,p=root@123,h=192.168.1.24,P=3306

     解释:

    --nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
    --no-check-binlog-format      : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
    --replicate-check-only :只显示不同步的信息。
    --replicate=   :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。 
    --databases=   :指定需要被检查的数据库,多个则用逗号隔开。
    --tables=      :指定需要被检查的表,多个用逗号隔开
    h=192.168.1.24    :Master的地址
    u=root         :用户名
    p=root@123       :密码
    P=3306         :端口

    注意:1 需要在从库配置 report_host=从库的ip   

                                       report_port=3306pt

              2  主从的账号的用户名密码必须一致,否则需要参数recursion-method指定

              3  --set-vars innodb_lock_wait_timeout=120   // 命令中设置MySQL参数

 

pt-table-sync  主从同步数据

    pt-table-sync --replicate=test.checksums h=192.168.1.24,u=root,p=root@123,P=3306 h=192.168.1.20,u=root,p=root@123,P=3306 --print

      解释:

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

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值