安装
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看看是否还有不一致的内容