1.先安装pt工具
[[email protected] ~]# yum -y install percona-toolkit
2.主库数据:
root@localhost:mysql3316.sock 16:18:03 [zhangshuo]>select * from zs; +----+--------------+ | id | name | +----+--------------+ | 1 | zhangshuo | | 2 | jie | | 3 | zhangsanfeng | +----+--------------+ 3 rows in set (0.00 sec)
3.从库数据:
root@localhost:mysql3317.sock 16:20:48 [zhangshuo]>select * from zs; +----+-----------------+ | id | name | +----+-----------------+ | 1 | zhangshuo | | 2 | jie | | 3 | zhangsanfeng | | 4 | 从入门进阶 | | 5 | 到删库跑路 | +----+-----------------+ 5 rows in set (0.00 sec)
4.很明显数据不一致,我们使用工具来检测:
首先要在从库配置文件中定义:
report_host=slave_ip
report_port=slave_port
root@localhost:mysql3316.sock 08:51:35 [percona]>grant all privileges on *.* to ‘repl‘@‘%‘ identified by‘repl‘; root@localhost:mysql3316.sock 08:53:05 [percona]>flush privileges;
[[email protected] ~]# pt-table-checksum -S /tmp/mysql3316.sock -P 3316 --user=repl --password=repl --host=192.168.1.113 --databases=zhangshuo --recursion-method=‘hosts‘ --no-check-binlog-format --create-replicate-table --replicate=zhangshuo.checksums
TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE 07-30T09:02:36 0 1 3 1 0 0.055 zhangshuo.zs
TS #检测完成时间。 ERRORS #检查时候发生错误的数量。 DIFFS #0表示一致,1表示不一致。 ROWS #表的行数。 CHUNKS #被划分到表中的块的数目。 SKIPPED #过多错误而跳过块的数目。 TIME #执行时间 TABLE #检查的表名
参数解析:
-S /tmp/mysql3316.sock #指定sock
-P 3316 #指定端口
--user=repl #指定用户
--password=repl #指定密码
--host=192.168.1.113 #指定检测主机
--databases=zhangshuo #指定检测库
--recursion-method=‘hosts‘ #发现从库方式
--no-check-binlog-forma #如果是row格式会报错,需跳过。
--create-replicate-table --replicate=zhangshuo.checksums #指定检测结果输出表
5.
时间: 2024-12-08 17:50:59