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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 发现pt-table-checksum bug一则 无法显示 无法现实和打印信息 。

发现pt-table-checksum bug例子

一.起因

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

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

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

| 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');```  
从库删除数据
AI 代码解读

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

执行pt语句校队
AI 代码解读

[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行
AI 代码解读

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


在percona-toolkit-3.0.3 已经修复了
AI 代码解读

if ( db= m/(informationschema|performanceschema|lost\+found|perconaschema)/ ) {

在/usr/bin/pt-table-checksum 中修复
AI 代码解读

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
AI 代码解读

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


**四总结**
AI 代码解读
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
61
分享
相关文章
利用pt-table-sync进行数据不一致修复
【前言】mysql由于软件本身的灵活性导致了可能主从数据库已经不一致了,但是数据库的主从监控却是正常的,前面已经介绍过pt-table-checksum工具可以检验出主从表中不一致的数据。
1235 0
pt-table-checksum原理详解
环境 MySQL: MySQL 5.6.27 OS: centos 6.6 tool: pt-table-checksum 2.2.15 它能做什么 业界最流行的MySQL主从数据对比工具,数据一致性检测最好的的工具,没有之一 如何使用 ./pt-table-che
7573 0
使用pt-table-checksum校验MySQL主从复制
pt-table-checksum是一个基于MySQL数据库主从架构在线数据一致性校验工具。其工作原理在主库上运行, 通过对同步的表在主从段执行checksum, 从而判断数据是否一致。
1800 0
[20170816]Join Elimination Bug.txt
[20170816]Join Elimination Bug.txt https://jonathanlewis.wordpress.com/2017/08/14/join-elimination-bug/ --//自己重复测试1次.
851 0
pt-table-checksum
pt-table-checksum是目前可以说是最好的查看主从一致性的工具 先来个使用例子,有助快速上手使用 在主库执行:mysql>GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE,CREATE,DELETE,INSERT,UPDATE ON .
1766 0
ORA-01002 “fetch out of sequence”关于cursor的一个bug
    今天发现一个PLSQL脚本报ORA-01002和ORA-06512: ERROR at line 1:ORA-01002: fetch out of sequenceORA-06512: at line 8     原来,脚本里包含两个表的两个cursor,然后分别对每个表打开cursor然后对此表做一些dml,每隔若干行rollback(这是因为此PLSQL脚本还在测试阶段,所以需要rollback)。
3822 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等