使用pt-table-checksum 3.6.0避坑指南

3.6.0在使用dsn的情况下存在bug,最后回退3.4.0版本

创建ptuser用户
#使用验证算法,否则默认会报错
#创建用户
 create user 'ptuser'@'%' identified with  sha256_password  by "你的密码";
#发现用dsn还是会报对应错误
#授权

GRANT CREATE,INSERT,SELECT,DELETE,UPDATE,LOCK TABLES,PROCESS,SUPER,REPLICATION SLAVE ON *.* TO 'ptuser'@'%';

#执行如下命令  校验nacos主从是否一致
pt-table-checksum --explain --nocheck-replication-filters --no-check-binlog-format  --replicate=test.checksums --recursion-method=hosts --databases=nacos --host=localhost --user=ptuser --port=13306 --ask-pass
加了explain不写入checksums表。
去除explain选项
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format  --replicate=test.checksums --recursion-method=hosts --databases=nacos --host=localhost --user=ptuser --port=13306 --ask-pass
提示无法发现slave,查询得知:
recursion-method 如果使用hosts 需要更改从库参数,并重新启动。
因此使用dsn方式。
主库创建percona相关库及表
create database percona_schema;
CREATE TABLE percona_schema.dsns ( id int(11) NOT NULL AUTO_INCREMENT, parent_id int(11) DEFAULT NULL, dsn varchar(255) NOT NULL, PRIMARY KEY (id));
#插入从库记录
INSERT INTO percona_schema.dsns(dsn) VALUES ('h=10.255.216.78,P=13306,u=ptuser,p=你的密码'); #将从库的DSN信息写入DSN表
退出数据库,使用如下命令  
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format  --replicate=test.checksums --recursion-method dsn=t=percona_schema.dsns --databases=nacos --host=localhost --user=ptuser --port=13306 --ask-pass
报错
7-05T16:13:00 Error checksumming table nacos.permissions: DBI connect(';;mysql_read_default_group=client','',...) failed: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory at /bin/pt-table-checksum line 1639.
更改用户认证方式为native试一下:
ALTER USER  'ptuser'@'%'  IDENTIFIED WITH 'mysql_native_password' BY '你的密码';
flush privileges;
还是报错。查看插件都已经改过来了
查看perl-DBD版本
[root@CQ2-LM9601028 ~]# rpm -qa|grep perl-DBD perl-DBD-MySQL-4.023-6.el7.x86_64
查看链接:https://perconadev.atlassian.net/browse/PT-1724
似乎要升级一下插件
http://repo.percona.com/tools/yum/experimental/7/RPMS/x86_64/perl-DBD-MySQL-4.050-4.el7.x86_64.rpm

 主从库升级后,还是报错
Error checksumming table nacos.config_info: DBI connect(';;mysql_read_default_group=client','',...) failed: Access denied for user 'root'@'localhost' (using password: NO) at /bin/pt-table-checksum line 1639.
根本不管连接的用户,发现海外用户有类似报告https://perconadev.atlassian.net/browse/PT-2250
 
退回 3.4.0版本。

回退一个rpm包

rpm -Uvh --oldpackage percona-toolkit-3.4.0-3.el7.x86_64.rpm


 执行如上命令
pt-table-checksum --nocheck-replication-filters --no-check-binlog-format  --replicate=test.checksums --recursion-method dsn=t=percona_schema.dsns --databases=nacos --host=localhost --user=ptuser --port=13306 --ask-pass

成功,发现记录不一样。使用同步工具

pt-table-sync修复

由于是生产库,数据量很小,直接重搭。
通过重新导入,再次校验,成功。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/776870.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux进阶】文件系统4——文件系统特性

1.磁盘组成与分区的复习 首先说明一下磁盘的物理组成,整块磁盘的组成主要有: 圆形的碟片(主要记录数据的部分);机械手臂,与在机械手臂上的磁头(可擦写碟片上的数据);主轴马达,可以…

Beats:使用 Filebeat 从 Python 应用程序中提取日志

本指南演示了如何从 Python 应用程序中提取日志并将其安全地传送到 Elasticsearch Service 部署中。你将设置 Filebeat 来监控具有标准 Elastic Common Schema (ECS) 格式字段的 JSON 结构日志文件,然后你将在 Kibana 中查看日志事件发生的实时可视化。虽然此示例使…

python基础语法 006 内置函数

1 内置函数 材料参考:内置函数 — Python 3.12.4 文档 Python 解释器内置了很多函数和类型,任何时候都能直接使用 内置函数有无返回值,是python自己定义,不能以偏概全说都有返回值 以下为较为常用的内置函数,欢迎补充…

【二】Ubuntu24虚拟机在Mac OS的VMware Fusion下无法联网问题

文章目录 1.环境背景2. 需求背景3. 解决方法3.1 在mac的终端查看虚拟机NAT网络3.2 查看unbuntu节点2的网络配置3.3 问题定位与解决3.3.1 检查是否有冲突3.3.2 冲突解决方法 4. 总结4.1 NAT 网关的原理4.2 VMware Fusion 的 NAT 模式4.3 为什么网关冲突会引起问题4.4 理解配置冲…

transformer初探

transformer初探 self-attentionmultihead-attentionencoderdecoder self-attention 其实就是三个矩阵, W q W_q Wq​、 W k W_k Wk​、 W v W_v Wv​,这三个矩阵就是需要训练的参数。分别得到每个token对应的 q q q k k k v v v,其中 q …

系统测试-测试方法学习

目录 (1)等价类 (2)边界值 (3)正交:(只用于确定排列组合,不确定具体内容) (4)判定表法 (5)流程分析法 (6&#xff0…

【vue组件库搭建04】使用vitepress搭建站点并部署到github

前言 基于vitePress搭建文档站点,使用github pages进行部署 安装VitePress 1.Node.js 18 及以上版本 2.npm add -D vitepress 3.npx vitepress init 4.将需要回答几个简单的问题: ┌ Welcome to VitePress! │ ◇ Where should VitePress initi…

Vue2基础 14:自定义指令

自定义指令 1 函数式1.1 案例--v-text放大10倍 2 对象式2.1 案例--v-fbind默认获取焦点(函数式)2.2 案例--v-fbind默认获取焦点(对象式) 3 自定义指令容易犯的错4 全局指令写法(参考过滤器写法)&#xff1a…

C51单片机程序及仿真(加减器)

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

AndroidKille更新apktool插件-cnblog

AndroidKiller不更新插件容易报错 apktool插件更新 网址 Releases iBotPeaches/Apktool (github.com) 找到apktool管理器 填入apktool位置,并输入apktool名字 选择默认的apktool版本 x掉,退出重启 可以看到反编译完成了 dex2jar 更新 网址 Release…

数据库-多表设计 多表查询

多表设计 一对多 一对多关系实现:在数据库表中多的一方,添加字段,来关联一的一方的主键 外键约束 -- 创建表时指定 create table 表名(字段名 数据类型,...[constraint] [外键名称] foreign key (外键字段名) references 主表…

帕金森患者饮食小贴士 满满的爱与关怀哦!

🍎 首先,要多吃水果和蔬菜!新鲜蔬果富含维生素和矿物质,对神经系统有很好的保护作用。🥦 特别是绿叶蔬菜,比如菠菜、生菜,它们都是健康的小天使!💚 🍲 其次&a…

vue2-vue3响应式原理

我们先来看一下响应式意味着什么?我们来看一段代码: m有一个初始化的值,有一段代码使用了这个值;那么在m有一个新的值时,这段代码可以自动重新执行; let m 20 console.log(m) console.log(m * 2)m 40上…

政策护航新能源助推绿色经济腾飞

随着全球气候变化问题日益严重,新能源行业的发展成为推动绿色经济腾飞的重要引擎。近年来,各国政府纷纷出台政策支持新能源产业,旨在激发行业活力,促进经济可持续发展。本文将从政策红利的角度,探讨新能源行业发展的现…

lnmp php7 安装ssh2扩展

安装ssh2扩展前必须安装libssh2包 下载地址: wget http://www.libssh2.org/download/libssh2-1.11.0.tar.gzwget http://pecl.php.net/get/ssh2-1.4.tgz (这里要换成最新的版本) 先安装 libssh2 再安装 SSH2: tar -zxvf libssh2-1.11.0.tar.gzcd libss…

【Linux进阶】ext2文件系统(inode)

1.再谈inode (1) 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个…

方法引用 异常 file

一.方法引用 1.方法引用概述 eg: 表示引用run1类里面的sxxxx方法 把这个方法当做抽象方法的方法体 ::是方法引用符 //方法引用Integer[] arr{4,3,1,6,2,7,8,5};Arrays.sort(arr,run1::subtraction);System.out.println(Arrays.toString(arr));}publi…

算法金 | 平均数、众数、中位数、极差、方差,标准差、频数、频率 一“统”江湖

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 抱个拳,送个礼 更多内容,见微*公号往期文章,阅读人数已破 10, 000:协方差、方差、标准…

vue3自定义全局指令和局部指令

1.全局指令 el:指令绑定到的DOM元素,可以用于直接操作当前元素,默认传入钩子的就是el参数,例如我们开始实现的focus指令,就是直接操作的元素DOM binding:这是一个对象,包含以下属性:…