千家信息网

mysql中如何使用pt-table-checksum和pt-table-sync

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关mysql中如何使用pt-table-checksum和pt-table-sync的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。pt-table-
千家信息网最后更新 2026年11月01日mysql中如何使用pt-table-checksum和pt-table-sync

这篇文章给大家分享的是有关mysql中如何使用pt-table-checksum和pt-table-sync的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

pt-table-checksum和pt-table-sync是percona-toolkit工具中的功能,用来检测主从数据一致性和修复主从不一致。

下面通过一组实验学习这两个功能的使用

1、主库创建表并插入数据

CREATE TABLE `NewTable` (

`id` int(8) NULL ,

`name` varchar(32) NULL ,

PRIMARY KEY (`id`)

) ;

insert into newtable values(1,'leo');

insert into newtable values(2,'mike');

insert into newtable values(3,'jack');

2、从库执行下面语句,让主从不一致

insert into newtable values(4,'lucy');

insert into newtable values(5,'petter');

update newtable set name='john' where id =1

3、测试数据如下

主库:

mysql> select * from test.newtable;

+----+------+

| id | name |

+----+------+

| 1 | leo |

| 2 | mike |

| 3 | jack |

+----+------+

3 rows in set (0.00 sec)

从库:

mysql> select * from test.newtable;

+----+--------+

| id | name |

+----+--------+

| 1 | john |

| 2 | mike |

| 3 | jack |

| 4 | lucy |

| 5 | petter |

+----+--------+

5 rows in set (0.00 sec)

4、pt-table-checksum参数介绍、使用

--port= 主库端口

--host= 主库IP

--databases= 校验的数据库

--tables= 校验 的表名,只指定数据库不指定表名,校验数据库下所有表

--user= 用户名(该用户在从库上也要有,同时需要权限)

--password= 用户密码

--replicate 指定checksum存储的库和表

--no-check-binlog-format 忽略binlog的格式,如果binlog是ROW或者MIXED不加这个参数都会报错

--no-check-replication-filters 忽略复制过滤,如binlog_ignore_db、slave-skip-errors等选项

--help 更多更详细的参数请见--help帮助文档

校验:

[root@trcloud ~]# pt-table-checksum --port=3306 --host=192.168.129.15 --databases=test --tables=newtable --user=root --password='123456' --replicate=test.check --no-check-binlog-format --no-check-replication-filters

TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE

12-13T13:44:07 0 1 3 1 0 0.059 test.newtable

注:检查的时候会向表加S锁

TS: 完成的检查时间

ERRORS:检查时候发生的错误和告警数量

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

ROWS: 表行数

CHUNKS:被划分到表中的块数量

SKIPPED: 由于错误跳过的数目

TIME: 执行时间

TABLE: 表名

5、使用pt-table-sync修复不一致

--replicate= 指定pt-table-checksum得到的表

h= 主库IP

u= 用户名

p= 密码

--execute 执行修复

--print 打印出sql语句

--help 更多更详细的参数请见--help帮助文档

[root@trcloud ~]# pt-table-sync --replicate=test.check h=192.168.129.15,u=root,p='123456' --execute --print

DELETE FROM `test`.`newtable` WHERE `id`='4' LIMIT 1 /*percona-toolkit src_db:test src_tbl:newtable src_dsn:h=192.168.129.15,p=...,u=root dst_db:test dst_tbl:newtable dst_dsn:h=172.30.249.5,p=...,u=root lock:1 transaction:1 changing_src:test.check replicate:test.check bidirectional:0 pid:19211 user:root host:trcloud*/;

DELETE FROM `test`.`newtable` WHERE `id`='5' LIMIT 1 /*percona-toolkit src_db:test src_tbl:newtable src_dsn:h=192.168.129.15,p=...,u=root dst_db:test dst_tbl:newtable dst_dsn:h=172.30.249.5,p=...,u=root lock:1 transaction:1 changing_src:test.check replicate:test.check bidirectional:0 pid:19211 user:root host:trcloud*/;

REPLACE INTO `test`.`newtable`(`id`, `name`) VALUES ('1', 'leo') /*percona-toolkit src_db:test src_tbl:newtable src_dsn:h=192.168.129.15,p=...,u=root dst_db:test dst_tbl:newtable dst_dsn:h=172.30.249.5,p=...,u=root lock:1 transaction:1 changing_src:test.check replicate:test.check bidirectional:0 pid:19211 user:root host:trcloud*/;

从打印的sql来看,如果从库数据多了使用delete删除,其他情况修复主从不一致使用的是REPLACE INTO。所以表上一定要有主键,不然不仅会报错,也会导致主从同步失败(因为在从库执行REPLACE INTO执行不过去)

6、检查主从一致

[root@trcloud ~]# pt-table-checksum --port=3306 --host=192.168.129.15 --databases=test --tables=newtable --user=root --password='123456' --replicate=test.check --no-check-binlog-format --no-check-replication-filters

TS ERRORS DIFFS ROWS CHUNKS SKIPPED TIME TABLE

12-13T13:48:18 0 0 3 1 0 0.108 test.newtable
数据已经正常

感谢各位的阅读!关于"mysql中如何使用pt-table-checksum和pt-table-sync"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

一致 数据 参数 更多 用户 检查 主从 从不 数据库 帮助 内容 功能 密码 数量 文档 时候 时间 用户名 篇文章 语句 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 为想互联网科技怎么样 互联网是不是新科技 河南真二互联网科技有限公司 朗新科技与工业互联网 互联网科技股有哪些 互联网公司会议桌创意科技软装饰 银川新华互联网科技学校地址 福州新华互联网科技学校 知乎 字节跳动和互联网科技 阿大互联网科技有限公司 注册互联网科技公司经营范围大全 威龙国际互联网科技公司 恒生互联网科技业指数调整周期 互联网科技快讯热点 从那以后互联网科技有限公司 互联网科技融合创新 广东鹅鹅鹅互联网科技有限公司 互联网科技企业商标注意事项 科技互联网专业工作会议发言稿 互联网新科技 科技互联网产品 中国互联网科技发展 浩特互联网科技 丰台科技园 互联网 壕鑫互联网络科技 科技伦理 互联网公司 互联网科技创新企业排名 互联网科技公司有风险吗 互联网金融运营模式中的金融科技
0