pt-table-sync同步主从数据(binlog为row格式)

注:pt-table-checksum和pt-table-sync默认支持基于语句的复制,不支持基于行的复制,相关BUG如下

https://bugs.launchpad.net/percona-toolkit/+bug/899415


注:在binlog格式为row的情况下,如下这样完成数据的同步任务(在主库上执行):

pt-table-checksum --nocheck-replication-filters --no-check-binlog-format --replicate=test.checksum --databases=dbname h=localhost,u=xxx,p=xxxxx,P=3306 -S /data/mysqldata1/sock/mysql.sock

此语句执行完成后,会在test数据库中创建checksum表,并且在表中插入数据同步的情况。

参数意义:
--nocheck-replication-filters :不检查复制过滤器,建议启用。后面可以用--databases来指定需要检查的数据库。
--no-check-binlog-format      : 不检查复制的binlog模式,要是binlog模式是ROW,则会报错。
--replicate-check-only :只显示不同步的信息。
--replicate=   :把checksum的信息写入到指定表中,建议直接写到被检查的数据库当中。
--databases=   :指定需要被检查的数据库,多个则用逗号隔开。
--tables=      :指定需要被检查的表,多个用逗号隔开
h=127.0.0.1    :Master的地址
u=root         :用户名
p=123456       :密码
P=3306         :端口


当检查后发现数据有不一致的情况,最好先对不同步的数据先进行验证,方法如下:

pt-table-sync --replicate=test.checksums h=10.xx.xx.xx,u=xxx,p=xxxxxx,P=3306 -d dbname -t tbname --print > xxxxx.txt

先通过输出sql的方式把对应的sql输出到对应的文件中,然后同时检查主库和从库的数据,验证数据是否一致,如果主库和从库数据不一致,使用下面的语句进行同步。

注:在(从库服务器)上执行

pt-table-sync --replicate=test.checksums h=10.xx.xx.xx,u=xxx,p=xxxxxx,P=3306 -d dbname -t tbname --execute


注:在数据同步过程中,尽量不要整个库同步,最后是验证一个表,同步一个表。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值