Mysql主从同步失败排查思路及解决办法

1、查看同步信息

        登录进从数据库后查询同步状态

show slave status \G

2、查看同步失败出现的日志

Coordinator stopped because there were error(s) in the worker(s).  The most r
ecent failure being: Worker 1 failed executing transaction '55b49392-fdcd-11ec-83b2-fa163ed1ceff:38158079'
at master log mysql-bin. 000114, end_log_pos 27826272.  See error log and/or performance_schema.replication_a
pplier_status_by_worker table for more details about this failure or others, if any.

3、查看同步失败详情

select * from performance_schema.replication_applier_status_by_worker\G
Worker 1 failed executing transaction '55b49392-fd
cd-11ec-83b2-fa163ed1ceff:38158079' at master log mysql-bin. 000114, end_log_pos 27826272;  Could not execute
Update_rows event on table gscloud.babapdataset;  Can't find record in 'babapdataset', Error_code: 1032;  ha
ndler error HA_ERR_KEY_NOT_FOUND;  the event's master log mysql-bin. 000114, end_log_pos 27826272

        通过日志可以看到 '55b49392-fdcd-11ec-83b2-fa163ed1ceff:38158079' 事务阻塞了同步,继续往下看,该事务中涉及到了表 'gscloud.babapdataset' 的Update操作。

        该日志还提供了主数据库binlog日志的名字和事务报错的位置:master log mysql-bin. 000114, end_log_pos 27826272

4、切换到主数据库,查看binlog日志

        日志一般存在/mysql/binlogs下

mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS mysql-bin.000114 | grep -A '10' 27826272 // 查看binlog日志

        填入自己的log日志名称和 end_log_pos,为了方便查看将输出转存储,并通过传输工具下载到本地。

mysqlbinlog --no-defaults -v -v --base64-output=DECODE-ROWS mysql-bin.000114 | grep -A '10' 27826272 > 20230630.log

        可以看到发生错误的数据id为:d82c9522-a1e9-bc9f-e1cc-4e2c0dcde425

         这样就找到了缺失的数据,因为从数据库中没有此数据,所以update时发生了错误,需要现将这条数据插入到从数据库中。

5、查询数据,插入到从数据库中

        我通过 navicat 来获取数据,来获取插入的SQL语句

         将获取到的SQL插入到从数据库中。

6、跳过失败的事务继续运行

stop slave; //停止同步线程
Set @@SESSION.GTID_NEXT='55b49392-fdcd-11ec-83b2-fa163ed1ceff:38158079'; //跳过事务
Begin;
Commit;
Set @@SESSION.GTID_NEXT = AUTOMATIC; //设置事务继续向下一个运行
start slave;

最后查看下运行状态:

OK 下班

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已烧写过的镜像重新烧镜像教程

本教程是已经烧录过镜像的SD卡,无法被电脑识别盘符导致无法重新烧录镜像的教程。一般是win7系统无法识别烧录过的Ubuntu系统盘符。win10可以使用SDformat软件格式化。 1.确定读卡器是否识别到SD卡。 点击计算机右键选择“管理”,选择磁盘管理&#xff0…

【AI底层逻辑】——篇章4:大数据处理与挖掘

目录 引入 一、大数据概述 二、数据处理的流程&方法 1、数据收集——“从无到有” 2、数据加工——“从有到能用” 3、数据分析 三、大数据改变了什么 往期精彩: 引入 AI的表现依赖大数据。曾经一段时间,对于图像识别的准确率只能达到60%~70…

接口测试和功能测试的区别

目录 前言: 一、测试目的不同 二、测试内容不同 三、测试重点不同 总结 前言: 接口测试和功能测试都是软件测试中非常重要的测试类型,它们都是验证软件产品的正确性、完备性、正确性和可靠性。但这两者之间有着一些区别。 一、测试目的…

python爬虫-逆向实例小记-3

注意!!!!某数据网站逆向实例仅作为学习案例,禁止其他个人以及团体做谋利用途!!!! 案例分析 第一步:分析页面。查看响应内容,内容加密 第二步&am…

chatgpt赋能python:用Python来制作动画

用Python来制作动画 Python是一种高级编程语言,可以用于许多任务,包括数据分析、网络编程,甚至是制作动画。在这篇文章中,我们将讨论如何使用Python来制作动画。 Python中的动画库 Python中有许多用于制作动画的库。其中最流行…

【动态规划算法练习】day11

文章目录 一、1312. 让字符串成为回文串的最少插入次数1.题目简介2.解题思路3.代码4.运行结果 二、1143. 最长公共子序列1.题目简介2.解题思路3.代码4.运行结果 三、1035. 不相交的线1.题目简介2.解题思路3.代码4.运行结果 总结 一、1312. 让字符串成为回文串的最少插入次数 1…

案例研究|小牛电动通过DataEase进行业务数据可视化分析

小牛电动(Niu Technologies)创立于2014年,是全球智能城市出行解决方案提供商。小牛电动的产品线包括电动自行车、电动摩托车、电动滑板车等。小牛电动在销售渠道上采用了线上线下相结合的模式,通过线上电商平台和线下门店销售&…

深入理解linux物理内存

目录 物理内存热插拔 从 CPU 角度看物理内存架构 内核如何管理 NUMA 节点 NUMA 节点物理内存区域的划分 NUMA 节点的状态 node_states 物理内存区域中的水位线 物理内存区域中的冷热页 内核如何描述物理内存页 匿名页的反向映射 物理内存热插拔 物理热插拔阶段&#xff…

阿里云地域和可用区分布表

阿里云服务器地域和可用区有哪些?阿里云服务器地域节点遍布全球29个地域、88个可用区,包括中国大陆、中国香港、日本、美国、新加坡、孟买、泰国、首尔、迪拜等地域,同一个地域下有多个可用区可以选择,阿里云服务器网分享2023新版…

SpringCloud微服务(二)网关GateWay、Docker、Dockerfile、Linux操作超详细

目录 统一网关GateWay 搭建网关服务的步骤 1、引入依赖 2、编写路由配置及nacos地址 路由断言工厂Route Oredicate Factory 路由过滤器配置 全局过滤器GlobalFilter 过滤器执行顺序 跨域问题处理 Docker ​编辑 Docker与虚拟机 镜像和容器 Docker的安装 启动docke…

threejs入门

个人博客地址: https://cxx001.gitee.io 前言 随着HTML5的发布,我们可以通过WebGL在浏览器上直接使用显卡资源来创建高性能的二维和三维图形,但是直接使用WebGL编程来创建三维场景十分复杂而且还容易出问题。而使用Three.js库可以简化这个过程&#xff…

Qt QGraphicsScene、QGraphicsView类实现仪表盘

Qt QGraphicsScene、QGraphicsView类实现仪表盘 【1】UI界面设计【2】效果【3】QGraphicsScene简介【4】QGraphicsEllipseItem简介【5】QGraphicsPolygonItem简介【6】QGraphicsLineItem简介【7】QGraphicsView简介【8】仪表源码头文件源码 【1】UI界面设计 【2】效果 【3】QGr…