1、安装依赖
yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes -y
2、上传并安装pt工具
rpm -ivh percona-toolkit-2.2.17-1.noarch.rpm
3、如报错
安装缺失依赖
yum -y install perl-Digest-MD5
yum -y install perl-TermReadKey
4、在主库创建dsn表(用于存储从库信息)
create database percona_schema;
create table percona_schema.dsns (id int(11) not null auto_increment,parent_id int(11) default null,dsn varchar(255) not null,primary key(id));
5、创建连接从库的用户、本地连接用户,并将连接从库信息写入dsn表
注意:该账号权限使用后应立即回收
grant all on *.* to 'pt'@'192.168.1.%' identified by 'pt123';
grant all on *.* to 'pt'@'192.168.1.localhost' identified by 'pt123';
flush privileges;
insert into percona_schema.dsns(dsn) values ("h=192.168.1.161,P=3309,u=pt,p=pt123");
6、检测
pt-table-checksum --socket=/tmp/mysql3307.sock --user=pt --password='pt123' --tables=zmz.t1 --replicate=zmz.checksums --no-check-binlog-format --no-check-replication-filters --recursion-method dsn=t=percona_schema.dsns,h=192.168.1.161,P=3309,u=pt,p=pt123
###
--socket=/tmp/mysql3307.sock:主库本地连接
--user=pt:主库连接用户名
--password='pt123':主库连接用户密码
--tables=zmz.t1:检测的库、表
--replicate=zmz.checksums:检测结果写入位置
--no-check-binlog-format:不检测复制的binlog模式,如果记录模式为row,则会报错
--no-check-replication-filters:不检查复制过滤器
--recursion-method dsn=t=percona_schema.dsns,h=192.168.1.161,P=3309,u=pt,p=pt123:从库连接信息,直接读取建立的库表中的信息
You can't use 'macro parameter character #' in math mode
7、恢复
###先测试
pt-table-sync --databases=zmz --tables=t1 --no-check-slave h=192.168.1.161,P=3307,u=pt,p=pt123 h=192.168.1.161,P=3309,u=pt,p=pt123 --print
###检测输出测试结果再执行
pt-table-sync --databases=zmz --tables=t1 --no-check-slave h=192.168.1.161,P=3307,u=pt,p=pt123 h=192.168.1.161,P=3309,u=pt,p=pt123 --execute
###
--databases=zmz:库
--tables=t1:表
--no-check-slave:忽略主从关系
--print:打印
--execute:执行