mysql主从恢复数据一致性(pt工具-pt-table-checksum和pt-table-sync)

### 安装pt工具(安装主库)
yum  localinstall    percona-toolkit-3.2.1-1.el7.x86_64.rpm
安装依赖
 yum install perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl  -y
 查看相关命令
 pt-table-checksum --help
 192.168.8.112(主)
 192.168.8.110(从)新增加一条数据
 192.168.8.111(从)

目前主从不一致

[root@localhost data]# pt-table-checksum --nocheck-replication-filters --replicate=check_data.checksums --no-check-binlog-format --databases=mysqtest --tables=runoob_tbl --user=qiao --password=root --port=3306
Checking if all tables can be checksummed ...
Starting checksum ...
            TS ERRORS  DIFFS     ROWS  DIFF_ROWS  CHUNKS SKIPPED    TIME TABLE
12-06T15:46:35      0      1        8          7       1       0   0.108 mysqtest.runoob_tbl

DIFFS 0 表示一致 1表示不一致

打印 --print
pt-table-sync --sync-to-master h=192.168.8.110,u=qiao,p=root,P=3306 --databases=mysqtest --tables=runoob_tbl --print
执行 --execute
pt-table-sync --sync-to-master h=192.168.8.110,u=qiao,p=root,P=3306 --databases=mysqtest --tables=runoob_tbl --execute


[root@localhost data]#  pt-table-sync --sync-to-master h=192.168.8.110,u=qiao,p=root,P=3306 --databases=mysqtest --tables=runoob_tbl --print
DELETE FROM `mysqtest`.`runoob_tbl` WHERE `runoob_id`='9' LIMIT 1 /*percona-toolkit src_db:mysqtest src_tbl:runoob_tbl src_dsn:P=3306,h=192.168.8.112,p=...,u=qiao dst_db:mysqtest dst_tbl:runoob_tbl dst_dsn:P=3306,h=192.168.8.110,p=...,u=qiao lock:1 transaction:1 changing_src:1 replicate:0 bidirectional:0 pid:59730 user:root host:localhost.localdomain*/;
Wide character in print at /usr/bin/pt-table-sync line 10965.  while doing mysqtest.runoob_tbl on 192.168.8.110

创建恢复数据不一致shell脚本

 ## vi pt-check-sync.sh
 # chmod  777  pt-check-sync.sh
#!/usr/bin/env bash

NUM=`pt-table-checksum --nocheck-replication-filters --replicate=check_data.checksums --no-check-binlog-format --databases=mysqtest --tables=runoob_tbl --user=qiao --password=root |
awk 'NR>1{sum+=$3}END{print sum}'`
if [ $NUM -eq 0 ] ; then
echo "Data is ok!"
else
echo "Data is error!"
pt-table-sync --sync-to-master h=192.168.8.110,u=qiao,p=root,P=3306 --databases=mysqtest --print
pt-table-sync --sync-to-master h=192.168.8.110,u=qiao,p=root,P=3306 --databases=mysqtest --execute
pt-table-sync --sync-to-master h=192.168.8.111,u=qiao,p=root,P=3306 --databases=mysqtest --print
pt-table-sync --sync-to-master h=192.168.8.111,u=qiao,p=root,P=3306 --databases=mysqtest --execute
fi
创建定时任务
* * * * * /home/pt-check-sync.sh

测试OK

mysql主从恢复数据一致性(pt工具-t-table-checksum-)

本作品采用《CC 协议》,转载必须注明作者和本文链接
有梦想的人睡不着,没有梦想的人睡不醒。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
文章
88
粉丝
23
喜欢
134
收藏
269
排名:228
访问:4.2 万
私信
所有博文
博客标签
redis
1
php
1
laravel
7
docker
3
orm
2
sync
1
pivot
1
detach
2
attach
2
算法
1
递归
1
多对多
1
lnmp环境搭建
1
GO变量
1
GO数据类型
1
IOC注入反转
1
IOC容器的绑定解析过程(绑定单例)
1
原生微信网页授权登录(natapp穿墙)
1
VMwareNAT网卡配置
1
MySQL基础架构
1
redis 主从搭建
1
Sentinel哨兵模式解决故障转移
1
elasticsearch安装
1
elasticsearch集群安装3台
1
安装kibana
1
必须了解的mysql三大日志-binlog、redo log和undo log
1
何处理数据恢复 数据丢失 面试tx的架构师的岗位问的
1
分库分表插入数据
1
创建分库分表(在主从复制的基本上)
1
分库分表总结
1
mysql总结
1
haproxy状态检测脚本(完成高可用)
1
mysql高可用衡搭建(Keepalived)
1
mysql负载均衡搭建(haproxy)
1
mysql主从恢复数据一致性(pt工具-t-table-checksum和pt-table-sync)
1
终于解决了《====》记一次mysql热备份xtrabackup(没有解决问题)
1
mysql事务
1
MYSQL8.0安装
1
Redis-cluster分布式集群搭建部署
1
比Redis-cluster还好的redis分布式集群(twemproxy)
1
Redis缓存穿透/缓存雪崩/缓存击穿(案例:产生的原因 解决方案利/弊)
1
数据结构之MySQL独爱B+树(二叉树、AVL树、红黑树、B树对比)
1
B-tree
1
B+tree
1
Mycat实现mysql的负载均衡读写分离
2
mysql双主双从 搭建配置
1
mycat 双主双从-负载均衡-高可用
1
Mycat垂直分库
1
记一次mysql高可用技术分享
1
【rabbitmq】安装ampq的扩展的踩坑总结
1
PHP操作MongoDB(增删改查)
1
golang总结
5
社区赞助商