pt-table-sync 表数据同步

主从同步是利用binlog日志进行同步,mysqldump是通过拉取sql,然后倒入,对于大表会非常慢

pt-table-sync 单纯的以文件的形式检查两个表的一致性,不一致就会将将其变为一致,所以速度会快很多

安装

# 安装插件
# yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl perl-DBI -y

# 安装本地工具
下载rpm可以去这里搜搜看,一般都有 
https://pkgs.org/search/?q=percona-toolkit
搜索这个包 percona-toolkit 找到对应版本下载即可
# yum -y localinstall percona-toolkit-3.2.1-1.el7.x86_64.rpm

# 查看列表
# yum list | grep percona-toolkit
percona-toolkit.x86_64                      3.2.1-1.el7                installed

# 查看帮助
# pt-table-checksum --help

编写同步脚本

# cat bf_cp_db.sh 
#!/bin/bash
# 获取源库中的所有表名,当然你不需要同步所有表就可以自己写个存有表名的文件,格式就是一个表一行
mysql -h172.30.0.42 -uroot -p'xxxxxxxx' -e "use bf_cp_db; show tables;" > /sh/bf_cp_db
# sed删除表名文件中的第一行Tables_in_bf_cp_db无用信息
sed -i '1d' bf_cp_db
# 生产列表变量
list=`cat /sh/bf_cp_db`
# 循环列表进行同步
for i in $list;
do
echo ------------$i-------------
pt-table-sync --execute h=172.30.0.42,P=3306,D=bf_cp_db,t=$i,u=root,p='xxxxxx' h=172.30.0.30,P=16673,u=root,p=xxxxxxx --no-check-slave --print
done

172.30.0.42 为源库

172.30.0.30 为被同步库

此同步方式如果源库修改了表结构,被同步库将无法同步数据

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值