Percona toolkit(简称pt工具集)是Percona公司开发的面向MySQL、MongoDB及系统任务的一套命令行工具集。

安装

参考即可Percona Toolkit 安装文档

pt-table-checksum

pt-table-checksum主要用于检测MySQL复制的一致性,检测主库、从库数据是否一致。该工具通过高效的方式来查找数据差异,找到的差异可以通过pt-table-sync来解决。

根据pt-table-checksum文档,需要先创建用于存放checksum计算结果的数据库percona和表checksums:

 1CREATE DATABASE IF NOT EXISTS percona;
 2CREATE TABLE checksums (
 3   db             CHAR(64)     NOT NULL,
 4   tbl            CHAR(64)     NOT NULL,
 5   chunk          INT          NOT NULL,
 6   chunk_time     FLOAT            NULL,
 7   chunk_index    VARCHAR(200)     NULL,
 8   lower_boundary TEXT             NULL,
 9   upper_boundary TEXT             NULL,
10   this_crc       CHAR(40)     NOT NULL,
11   this_cnt       INT          NOT NULL,
12   master_crc     CHAR(40)         NULL,
13   master_cnt     INT              NULL,
14   ts             TIMESTAMP    NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
15   PRIMARY KEY (db, tbl, chunk),
16   INDEX ts_db_tbl (ts, db, tbl)
17) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在主库和从库创建检查checksum所需用户并授权:

1GRANT ALL on percona.* to percona@'%' IDENTIFIED BY 'percona_password';
2GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE on *.* to percona@'%';

在主库上运行checksum:

1pt-table-checksum h='192.168.1.5',u='percona',p='percona_password',P=3306 \
2--nocheck-replication-filters --replicate=percona.checksums

参考