首页 > 其他分享 >记录一次主从同步异常分析过程

记录一次主从同步异常分析过程

时间:2023-03-08 11:35:32浏览次数:35  
标签:03 同步 20 log 记录 2023 06 从库 主从

c2cr2k2knb1c2cr2k2knb1.jpg 凌晨收到主从同步异常的报警,发现从库Slave_SQL_Running: No,SQL线程已经挂掉,第一时间切换从库域名到主库,保证数据抽取任务正常,接下来开始排查具体原因。 通过show slave status\G看到如下报错(库名和表名已修改):

Last_Error: Worker 4 failed executing transaction 'b32eb7b9-70d0-11ea-87d7-b496914fe6b8:38660024669' at master log mysql-bin.046359, end_log_pos 992049602; Could not execute Update_rows event on table xxx.xxx; Can't find record in 'xxx', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.046359, end_log_pos 992049602

很明显,从库在做update时候,发现有一条记录没有找到。接下来我们对主库和从库binlog进行解析。 根据报错中的GTID和position信息,对主从binlog进行解析,发现在20:03时候主库进行insert,主库和从库binlog都已经写入。 主库: 图片.png 从库: 图片.png

但是从库查不到对应id的这条记录。 主库: 图片.png 从库: 图片.png id为98825687的数据没有insert成功。

比较巧合的是,20:03这个时间点这个实例发生了重启,接下来我们去error log里边找一些信息。

2023-03-06 20:03:47 83960 [Note] Starting crash recovery...
2023-03-06 20:03:47 7f0e33785720  InnoDB: Starting recovery for XA transactions...
2023-03-06 20:03:47 7f0e33785720  InnoDB: Transaction 183293885769 in prepared state after recovery
2023-03-06 20:03:47 7f0e33785720  InnoDB: Transaction contains changes to 527745 rows
2023-03-06 20:03:47 7f0e33785720  InnoDB: 1 transactions in prepared state after recovery
2023-03-06 20:03:47 83960 [Note] Found 1 prepared transaction(s) in InnoDB
2023-03-06 20:03:47 83960 [Note] Crash recovery finished.

可以看到这个实例确实发生了重启。 那么问题来了,正常情况下,在双一设置前提下,数据库异常重启不可能丢失数据的。binlog写入正常,数据丢失,出现这种情况很大可能是redo log没有落盘成功,redo log没有落盘成功也就意味着innodb_flush_log_at_trx_commit设置不是1。 接下来我们查一下前一周的自动巡检报告: 图片.png 双一参数确实被修改过。 经过和其他同事核实,这个从库负载过高时候,为了解决延迟问题,曾经修改过innodb_flush_log_at_trx_commit和sync_binlog。 排查到此,同步异常原因已找到。由于innodb_flush_log_at_trx_commit设置为0,所以不确定丢失多少条数据,只能重新搭建从库了。

标签:03,同步,20,log,记录,2023,06,从库,主从
From: https://blog.51cto.com/u_12592884/6107954

相关文章

  • EasyCVR通过国标GB28181协议接入设备,设备同步了服务器时间的原因排查
    EasyCVR平台可支持多类型设备、多协议方式接入,可覆盖市面上绝大多数的视频源设备,包括:IPC、NVR、视频编码器、移动执法仪、应急布控球、移动警用单兵、无人机、车机设备、车......
  • Wireshark常用指令记录
    Wireshark抓包指令:1、ip.addr==127.0.0.1&&frame[47:1]==05[抓具体指令key值,取47位后1位,也就是48位]2、tcpandip.addr==127.0.0.1andtcp.port=8000anddatacontai......
  • Tkinter使用教程记录
    简介Tkinter是Python的标准GUI库。Python使用Tkinter可以快速地创建GUI应用程序。当然常用的GUI库还有PyQt5,我们只需要知道这两个常用的即可,如果你真的想学习的话。由......
  • 剑指 Offer(第 2 版)刷题记录
    前言本文用于整理我个人的剑指offer刷题记录,初学者朋友们可以看一下我的其他记录Leetcode面试高频题分类刷题总结及题解题目哈希表剑指Offer03.数组中重复的数字......
  • 记录一次汉字的找寻工作
    有个人的名字是这个字,需通过Word打印出来字海网http://zisea.com/zslistlf.asp通过两分搜索王莹点击字的图片进入详情查询得知该字在Unicode编码的扩展E区,编码为U+2......
  • 学习记录(3.7)
    学习时长:5h代码行数:约40行今天上午跟外教学习了用英语表示不同的心情,并且知道了不同词之间意思的不同。之后在数据库课上学习了sql语句,并且从基础了解了一下......
  • MySQL5.7主从复制教程
     MySQL5.7主从复制教程 ​简述:主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库、事务处理库,从库做查询库。......
  • jira使用记录小窍门
    可以将subtask直接转换成task不用再新建一个task,选择右上角的三个点操作  转换完之后之前链接的所有的task都会被取消所以得重新链接 ......
  • 使用Mycat构建MySQL读写分离、主从复制、主从高可用
    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。 从数据库的角度来说,对于大多数应用来说,从集中到分布,最基本的一个需求不是数据存......
  • 2023.3比赛记录
    要退役了......