当前位置: 移动技术网 > IT编程>数据库>Mysql > pt-table-checksum主从一致性校验工具

pt-table-checksum主从一致性校验工具

2018年02月16日  | 移动技术网IT编程  | 我要评论

pt-table-checksum主从一致性校验工具

1. 功能介绍

检查mysql复制一致性.

2. 用法介绍

pt-table-checksum [OPTION…] [DSN]

工作原理: pt-table-checksum在主上执行检查语句在线检查mysql复制的一致性,生成replace语句,然后通过复制传递到从,再通过update更新master_src的值。通过检测从上this_src和master_src的值从而判断复制是否一致。

[DSN] 指向的是主的地址。

  
注意事项:
测试需要一个既能登录主库、也能登录从库,而且能同步数据库的账号。 只能指定一个host,必须为主库的ip. 在检查时会向表加S锁. 运行之前需要从库的同步IO和SQL进程是YES状态 如果在配置主从时, 忽略复制mysql库时, 需要在主上和从上都执行下面的授权语句。 mysql> grant select, process, super, replication slave on *.* to 'checksums'@'x.x.x.x' identified by '123456';
  备注: 使用的时候选择业务地峰的时候运行,因为运行的时候会造成表的部分记录锁定。 使用--max-load来指定最大的负载情况,如果达到那个负载这个暂停运行。如果发现有不一致的数据,可以使用pt-table-sync工具来修复。

  (和1.0版本不同,新版本的pt-table-checksum只需要在master上执行即可)
3. [OPTION..]–选择参数
--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用

--databases:来指定需要检查的数据库。

--no-check-binlog-format      : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。

--replicate-check-only :只显示不同步的信息。

--replicate=   :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。 

--databases=   :指定需要被检查的数据库,多个则用逗号隔开。

--tables=      :指定需要被检查的表,多个用逗号隔开

--create-replicate-table: 创建表(给用户创建表的权限)

--recursion-method:  主机信息

h=127.0.0.1    :Master的地址

u=root         :用户名

p=123456       :密码

P=3306         :端口

4. 实例:
实例1:
>>> pt-table-checksum --nocheck-replication-filters --databases=activity --replicate=radius.checksums --create-replicate-table --no-check-binlog-format --host=192.168.7.131 --port=3306 -uroot -p123456
            TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE
07-31T14:17:44      0      1        4       1       0   1.131 activity.t
  TS            :完成检查的时间。
  ERRORS        :检查时候发生错误和警告的数量。
  DIFFS         :0表示一致,1表示不一致。当指定--no-replicate-check时,会一直为0,当指定--replicate-check-only会显示不同的信息。
  ROWS          :表的行数。
  CHUNKS        :被划分到表中的块的数目。
  SKIPPED       :由于错误或警告或过大,则跳过块的数目。
  TIME          :执行的时间。
  TABLE         :被检查的表名。
 mysql > select * from radius.checksums;

            db: activity
           tbl: t
         chunk:1
    chunk_time:0.001246
   chunk_index:NULL
lower_boundary:NULL
upper_boundary:NULL
      this_crc: 706af48f    #slave
      this_cnt:4           #slave
    master_crc: e963a535    #master
    master_cnt:4           #master                 可以发现表t1中从库比主库多0条记录
            ts:2014-04-13 16:05:16

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网