【bug】发现pt-table-checksum bug一例

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 发现pt-table-checksum bug一则 无法显示 无法现实和打印信息 。

发现pt-table-checksum bug例子

一.起因

由于全公司在组织学习MySQL。正在学到MySQL安装、 复制这一块,我的霸道总裁突然霸气十足的问我 ‘’你如何检测主从不一致呢‘’,我回答说 当然是```

pt-table-checksum` ,从而引出了下文.
二.描述

MySQL5.7 主从环境
percona-toolkit-2.2.20-1.noarch
创建了一个test_xx的库
Query OK, 1 row affected (0.01 sec)```  
创建表

| aa | CREATE TABLE aa (
id int(11) NOT NULL,
name varchar(10) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

插入数据
```"root@localhost:mysql.sock  [test_xx]>insert into aa values(1,'a'),(4,'a');```  
从库删除数据

"root@localhost:mysql.sock [test_xx]>delete from aa;
Query OK, 2 rows affected (0.01 sec)

执行pt语句校队

[root@localhost ~]# pt-table-checksum --no-check-binlog-format --replicate=pt.cheksum --databases=test_xx -h 192.168.230.132 -u aa -predhat -P 3306 --recursion-method='processlist'

我的霸道总裁就喊我了 快来给我看看 。只能放下手里的砖先,开开心心的过去。
**三 排错**
     开始以为是我的参数问题,各种调试。霸道总裁在旁边坐着好紧张QAQ 过了10分钟 还是没搞定。 霸道总裁突然说是不是**_**(下划线)问题呢。 去除**_**(下划线)重新创建库 插入表 插入数据 从库删除数据 还是不好使。。。 淡淡的忧伤 今天果然运气不好啊。 突然机智的总裁说 是不是 数据库的名字有长度限制呢。这就给了我一丝希望 就安装霸道总裁的意思 创建库名casdfdsfsf  创建表 插入数据 从库删除数据 结果好用了 好神奇 突然感觉世界都亮了。
我的霸道总裁告诉我 会不会是 因为test或者_的原因呢。经过各种 创建库 创建表 插入数据 从库删数据 等等操作。。
结果发现 机智的霸道总裁的结论的是对的 因为有test开头。 霸道总裁有没有好机智, 是不是快爱上霸道总裁了。
然后通过阅读```pt-table-checksum```  的代码 发现 代码7617行

if ( $db =~ m/information_schema|performance_schema|lost+found|percona|percona_schema|test/ ) {


在percona-toolkit-3.0.3 已经修复了

if ( $db =~ m/^(information_schema|performance_schema|lost\+found|percona_schema)$/ ) {

在/usr/bin/pt-table-checksum 中修复

if ( $db =~ m/information_schema|performance_schema|lost+found|percona|percona_schema/ ) {

[root@localhost ~]# pt-table-checksum --no-check-binlog-format --replicate=pt.cheksum --databases=test_xx -h 192.168.230.132 -u aa -predhat -P 3306 --recursion-method='processlist'

        TS ERRORS  DIFFS     ROWS  CHUNKS SKIPPED    TIME TABLE

09-08T10:48:15 0 1 2 1 0 0.044 test_xx.aa


**四总结**
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
存储 关系型数据库 MySQL
|
关系型数据库 MySQL
pt-table-checksum原理详解
环境 MySQL: MySQL 5.6.27 OS: centos 6.6 tool: pt-table-checksum 2.2.15 它能做什么 业界最流行的MySQL主从数据对比工具,数据一致性检测最好的的工具,没有之一 如何使用 ./pt-table-che
7327 0
Fix Bug的五个阶段
译文链接:Fix Bug的五个阶段
650 0
|
关系型数据库 数据库 索引
pt-table-checksum
pt-table-checksum是目前可以说是最好的查看主从一致性的工具 先来个使用例子,有助快速上手使用 在主库执行:mysql>GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,CREATE,DELETE,INSERT,UPDATE ON .
1643 0
percona-toolkit之工具pt-table-checksum使用介绍
pt-table-checksum:主要用来检查主从数据是否一致
1604 0