MySQL 中Relay Log打满磁盘问题的排查方案

MySQL 中Relay Log打满磁盘问题的排查方案

引言:

MySQL Relay Log(中继日志)是MySQL复制过程中的一个重要组件,它用于将主数据库的二进制日志事件传递给从数据库。然而,当中继日志不断增长并最终占满磁盘空间时,可能导致数据库复制出现问题。本文将介绍一些常见的排查方案,帮助解决MySQL Relay Log打满磁盘的问题。

实际生产过程中出现的问题:在进行大量的数据同步过程中,主备库之间进行数据复制导致relay log打满磁盘。
relay_log打满

1. 检查复制延迟

首先,确认是否存在复制延迟。当数据库无法及时处理中继日志,中继日志会不断积累,从而导致磁盘空间被占满。通过执行以下查询语句,可以获取主数据库和从数据库之间的复制延迟情况:

SHOW SLAVE STATUS\G

在这里插入图片描述
从结果中可以看出是回访线程出错,导致中继日志不断累积,导致磁盘打满。那接下来的排查重点就是回放线程出错的原因,

select * from  performance_schema.replication_applier_status_by_worker limit 10\G

错误信息: Could not execute Delete rows event on table database dm rsznfxk.file job search entrepreneurshp_graduate 2023; Can’t find record in ‘file job search entrepreneurship graduate 2023’
在这里插入图片描述
导致回放失败的原因就是在执行delete操作时出现了问题,怀疑是slave删除了记录,然后回放时,尝试删除不存在的记录导致失败。排查思路是:

  • 先找到这条事务中delete语句。
  • 然后去slave的binlog中查找这条语句,确认是否有用户做了删除操作。
2.检查relay log大小

确定中继日志文件的大小,以及每个中继日志文件的数量。执行以下查询语句获取中继日志相关信息:

SHOW RELAYLOG EVENTS;

如果发现中继日志文件过大,可以考虑进行日志文件的轮转和清理。可以使用以下方法进行操作:

  • 执行PURGE BINARY LOGS TO <Relay_Log_File>; 清理旧的中继日志文件。
  • 配置MySQL参数relay_log_space_limit限制中继日志的总体积,防止无限制增长。

在上述问题中,slave是自动执行过purge操作的,导致slave上部分的中继日志被清理,影响后续的问题排查(事实是的确影响了最后的排查)

3. 检查从数据库的复制状态

确认从数据库是否正常复制主数据库的数据。可以通过以下方法进行检查:

  • 执行SHOW SLAVE STATUS\G,检查Slave_IO_Running和Slave_SQL_Running字段的值是否为Yes。
  • 检查从数据库的错误日志,查找任何与复制相关的错误信息。

在这里插入图片描述

4. 检查主数据库的二进制文件

确保主数据库的二进制日志状态正常,避免出现无法复制的情况。执行以下查询语句:

SHOW MASTER STATUS;

检查File和Position字段的值,并与从数据库的中继日志进行对比。如果从数据库无法追上主数据库的日志位置,可能会导致中继日志不断增长。

5. 优化中继日志的写入和读取

针对中继日志的写入和读取过程进行性能优化,可以采取以下措施:

  • 配置适当的硬件设备,如快速磁盘和RAID阵列,以提高IO性能。
  • 调整MySQL参数,如relay_log_buffer和relay_log_recovery等,以优化中继日志的写入和读取效率。
结论:

解决MySQL Relay Log打满磁盘的问题,可以通过检查复制延迟、中继日志大小、复制状态、二进制日志状态以及性能优化,保证数据库复制的顺利进行,并避免中继日志占满磁盘的情况发生。但是实际环境中的日志打满磁盘问题排查起来非常困难,主要是卡在找出引起回放线程出错的那条语句,很大可能是被purge了,最后的解决方案是不保留备库的数据,因为执行的是迁移任务,满足客户的需求为先。

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

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

相关文章

Flutter:web项目跨域问题解决

前后端解决系列 文章目录 一、Flutter web客户端解决本地环境调试跨域问题二、Flutter web客户端解决线上环境跨域问题 一、Flutter web客户端解决本地环境调试跨域问题 就一句命令【--web-browser-flag "--disable-web-security"】&#xff0c;用来屏蔽浏览器域名请…

简单实现Spring容器(五) 实现bean后置处理器BeanPostProcessor机制

阶段5: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. // 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map. // 3.初始化单例池并完成getBean() createBean()方法 // 4.完成依赖注入(如果创建某个Bean对象,存在依赖注入,需要进行bean组装操作) 5.bean…

城市基础设施智慧路灯改造的特点

智慧城市建设稳步有序推进。作为智慧城市的基础设施&#xff0c;智能照明是智慧城市的重要组成部分&#xff0c;而叁仟智慧路灯是智慧城市理念下的新产品。随着物联网和智能控制技术的飞速发展&#xff0c;路灯被赋予了新的任务和角色。除了使道路照明智能化和节能化外&#xf…

机器学习 类别特征编码:Category Encoders 库的使用

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

使用WebyogSQLyog使用数据库

数据库 实现数据持久化到本地&#xff1a; 使用完整的管理系统统一管理&#xff0c; 数据库&#xff08;DateBase&#xff09;&#xff1a; 为了方便数据存储和管理&#xff08;增删改查&#xff09;&#xff0c;将数据按照特定的规则存储起来 安装WebyogSQLyog -- 创建数…

STP(生成树协议)

STP&#xff08;生成树协议&#xff09; 生成树协议原理&#xff1a; ​在二层交换网络中&#xff0c;逻辑的阻塞部分接口&#xff0c;实现从根节点到所有节点唯一的路径的生成&#xff0c;成为一个没有环路的拓扑。当最佳路径数显故障时&#xff0c;个别被阻塞的接口将被打开…

Slate基础使用说明

目录 Slate基础使用说明 1. 简单教程 2. 要点说明 2.1 TCommands以及TCommands基类 2.2 FUICommandInfo 2.3 FUICommandList 2.4 FUIAction 2.5 UICommand 3. 代码源码 4. 工具使用 4.1 Display Ul Extension Points 4. 参考文章 Slate基础使用说明 1.…

linux逻辑卷LVM

创建LVMVG管理LV扩容 6.2.6 逻辑卷LVM LVM是Logical Volume Manager 的简称&#xff0c;译为逻辑卷管理&#xff0c;它是Linux下对硬盘分区的一种管理机制。LVM适合于管理大存储设备&#xff0c;并允许用户动态调整文件系统的大小。此外&#xff0c;LVM的快照功能可以帮助我们快…

算法leetcode|92. 反转链表 II(rust重拳出击)

文章目录 92. 反转链表 II&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a;进阶&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 92. 反转链表 II&#xff1a; 给你单链表的…

期待已久:K8S终于迎来交换内存Beta支持!

关注【云原生百宝箱】公众号&#xff0c;获取更多云原生消息 Kubernetes 1.22 版本开始支持在 Linux 节点上使用交换内存的 Alpha 特性&#xff0c;而在 1.28 版本中升级为 Beta 版本并进行了许多改进。之前版本的 Kubernetes 不支持 Linux 系统上的交换内存&#xff0c;但随着…

微信小程序、mpvue性能测试与体验

最近一直在折腾mpvue写的微信小程序的性能优化&#xff0c;分享下实战的过程。 先上个优化前后的图&#xff1a; 可以看到打包后的代码量从 813KB减少到 387KB,Audits体验评分从 B到 A&#xff0c;效果还是比较明显的。其实这个指标说明不了什么&#xff0c;而且轻易就可以做…

Pytorch深度强化学习1-6:详解时序差分强化学习(SARSA、Q-Learning算法)

目录 0 专栏介绍1 时序差分强化学习2 策略评估原理3 策略改进原理3.1 SARSA算法3.2 Q-Learning算法 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理&#xff0c;并且采用Pytorch框架对常见的强化学习算法、案例进行实现&#xff0c;帮助读者理解并快速上手开发。同时&#…