pt-table-toolkit同步主从不一致的数据

安装

sudo yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm

主库上创建保存从库dsn信息的数据表(需要首先创建percona库并确保从库能把percona同步过去)

CREATE TABLE `dsns` (      `id` int(11) NOT NULL AUTO_INCREMENT,    `parent_id` int(11) DEFAULT NULL,  `dsn` varchar(255) NOT NULL,   PRIMARY KEY (`id`)  );

插入从库的dsn信息:从库dsn格式为: ‘h=replica_host,u=repl_user,p=repl_pass’

insert into dsns (parent_id,dsn) values(1, 'h=192.168.44.144,u=root,p=123456,P=6667')

主上执行命令

pt-table-checksum h=192.168.44.144,u=root,p=123456,P=6666 -d mdsoftv3 --nocheck-replication-filters --replicate=percona.checksums --no-check-binlog-format  --recursion-method dsn=h=192.168.44.144,D=percona,t=dsns --chunk-time=2

从上检查

select * from checksums where master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc)

从上执行命令,同步

参数--databases可以不指定,因为前边我们只check一个库

pt-table-sync --execute --print --replicate=percona.checksums --databases=mdsoftv3 h=192.168.44.144,P=6666,u=root,p=123456 h=192.168.44.144,P=6667,u=root,p=123456

在从上检查是否同步完成,显示为空证明同步完成

select * from checksums where master_cnt <> this_cnt OR master_crc <> this_crc OR ISNULL(master_crc) <> ISNULL(this_crc)

但是这个sql好像没什么效果,可以再次执行checksum看看是否还有不一致的内容

你可能感兴趣的:(pt-table-toolkit同步主从不一致的数据)