mysql传统主从模式下,主从中断接续

embedded/2025/4/1 0:20:02/

现象描述

传统模式的mysql主从。

Slave因为大事务延迟巨大。从库重启前的记录位点在binlog:552,pos:471157766

Relaylog:629,pos:496188584

从库重启后binlog倒退到221

Relaylog反而到了1653

故障判断

IO thread 为no,而SQL thread为yes。

通过relog index也确认1633是最新的relaylog。

判断:从库在重启时relay自动应用到了最新,但是在获取主库的binlog位置时失败。

因为是传统模式的m-s主从,需要手工找出接续的位点。

解决办法

分析relaylog 1653发现其是空事务

遂分析relaylog1652最后部分

可以看到end_log_pos是488269909

在主库上488269909的binlog file我们通过大概的分析获得。这里分析得到是binlog000552

CHANGE MASTER TO

  MASTER_HOST='master_host_name',  -- 主服务器的地址

  MASTER_USER='replication_user',   -- 用于复制的用户

  MASTER_PASSWORD='replication_password',  -- 复制用户的密码

  MASTER_LOG_FILE='mysql-bin.000552',  -- 二进制日志文件名

  MASTER_LOG_POS=488269909;                -- 二进制日志中的位置

重启slave

START SLAVE;

IO thread继续成功,但是有数据不一致问题。从库还是重建了。

试错附录

Error 1236 * log event entry exceed max_allocated_packet

主库master侧的max_allocated_packet太小。估计和解析binlog位置的sql太大有关

Error 1236  * bogus data in log event

在指定master log的pos的时候尝试使用过488269909+1,会导致以下报错

然后再去使用以上的最后位置的488269948就会得到上一张截图的错误。

分析这里是指定接续位点。这里不需要想当然的+1计算。这个pos不是scn这种逻辑值,是直接的物理bytes位置。直接使用最后relaylog中的最后的end_pos:488269948即可


http://www.ppmy.cn/embedded/176697.html

相关文章

C++学习之QT中HTTP正则表达式

目录 1.知识点概述 2.BASE64介绍 3.QT中BASE64的使用 4.正则表达式中的位置限定字符 5.修饰数量的特殊字符 6.正则表达式中的字符匹配 7.正则表达式例子 8.正则表达式网址介绍 9.QNETWORKACCESSMANAGER类使用介绍 10.QNETWORKREQUEST类的使用 11.QNETWORKREPLY类的使…

clamav服务器杀毒(Linux服务器断网状态下如何进行clamav安装、查杀)

ClamAV服务器杀毒(服务器断网状态也可以使用该方法) 服务器因为挖矿病毒入侵导致断网,进行离线的clamav安装并查杀 安装包下载网址:https://www.clamav.net/downloads 安装.deb,如果服务器处于断网状态,可以…

Gitlab服务器数据迁移及版本升级

公司目前使用的GITLAB服务器,docker方式部署,GITLAB版本为13.11.0,由于版本太老存在安全漏洞,原服务器还部署了其他应用,不方便做升级操作,解决思路是将数据迁移新版本的gitlab服务器。 由于gitlab数据备份…

EasyUI数据表格中嵌入下拉框

效果 代码 $(function () {// 标记当前正在编辑的行var editorIndex -1;var data [{code: 1,name: 1,price: 1,status: 0},{code: 2,name: 2,price: 2,status: 1}]$(#dg).datagrid({data: data,onDblClickCell:function (index, field, value) {var dg $(this);if(field ! …

【stm32】用从模式控制器 完成PWM的测量

🌞学习视频还是来自于 铁头山羊 🌿主要是回顾一下他讲的这一章的定时器的部分,具体的话 还是看一下具体铁头山羊的视频,讲的很清楚~~ 整体流程是这样的,首先通过定时器的输出比较功能,配置好PA6产生一个特定…

基于Python+Flask+MySQL+HTML的爬取豆瓣电影top-250数据并进行可视化的数据可视化平台

FlaskMySQLHTML 项目采用前后端分离技术,包含完整的前端,以flask作为后端 Pyecharts、jieba进行前端图表展示 通过MySQL收集格列数据 通过Pyecharts制作数据图表 这是博主b站发布的详细讲解,感兴趣的可以去观看:【Python爬虫可…

【MySQL】一篇讲懂什么是聚簇索引和非聚簇索引(二级索引)以及什么是回表?

1.聚簇索引: 叶子节点直接存储了完整的数据行。 每个表只能有一个聚簇索引,通常是主键(Primary Key)。如果没有定义主键,则MySQL会选择一个唯一且非空索引作为聚簇索引。 特点: 数据存储:叶子结点存储完整的数据行…

docker 容器 php环境中安装gd 、mysql 等扩展

1、先配置阿里云镜像源 cd /etc/apt echo "" > sources.list echo "deb http://mirrors.aliyun.com/debian/ bullseye main contrib" >> /etc/apt/sources.list echo "deb-src http://mirrors.aliyun.com/debian/ bullseye main contrib&q…