Percona toolkit(简称pt工具集)是Percona公司开发的面向MySQL、MongoDB及系统任务的一套命令行工具集。
安装
pt-table-checksum
pt-table-checksum主要用于检测MySQL复制的一致性,检测主库、从库数据是否一致。该工具通过高效的方式来查找数据差异,找到的差异可以通过pt-table-sync来解决。
根据pt-table-checksum文档,需要先创建用于存放checksum计算结果的数据库percona和表checksums:
CREATE DATABASE IF NOT EXISTS percona;
CREATE TABLE checksums (
db CHAR(64) NOT NULL,
tbl CHAR(64) NOT NULL,
chunk INT NOT NULL,
chunk_time FLOAT NULL,
chunk_index VARCHAR(200) NULL,
lower_boundary TEXT NULL,
upper_boundary TEXT NULL,
this_crc CHAR(40) NOT NULL,
this_cnt INT NOT NULL,
master_crc CHAR(40) NULL,
master_cnt INT NULL,
ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (db, tbl, chunk),
INDEX ts_db_tbl (ts, db, tbl)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;在主库和从库创建检查checksum所需用户并授权:
GRANT ALL on percona.* to percona@'%' IDENTIFIED BY 'percona_password';
GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE on *.* to percona@'%';在主库上运行checksum:
pt-table-checksum h='192.168.1.5',u='percona',p='percona_password',P=3306 \
--nocheck-replication-filters --replicate=percona.checksums