[MySQL]-主从同步实战-系统OOM

[MySQL]-主从同步实战-系统OOM

森格 | 2023年1月

本文主要描述了在主从同步过程中,主库非人为重启导致的主从瞬间中断情况的排查及解决。



一、问题发现

1.1 背景

两台机子做主从同步,主库业务使用,从库供测试使用,使用脚本检测主从状态,每隔10min检测一次,若Slave_IO_Running、Slave_SQL_Running状态不为YES则发出报警到企微。

1.2 问题发现

偶然发送主从同步告警失败的通知,登录从库检查时,主从又恢复正常了,频率大概1-2天一次,所谓,“事出反常必有妖”。

既然发现了奇怪之处,我们也不能让它老是这样,下面一起看下怎么解决的。

二、问题分析

2.1 MySQL日志

拿到问题我们去拿MySQL的日志分析下,会发现这样一段内容:

在这里插入图片描述

不难看出主从同步的偶发告警是由于主库的内存不够用了,被系统不正常重启了。

2.2 系统日志

知道是主库被不正常重启后,我们去查看下Linux的系统日志,是否是因为out of memory(OOM)导致的

grep -i "out" /var/log/messages

经过查看,果然发生了内存不够用,我们再来看下更详细的信息:

在这里插入图片描述

既然问题的原因我们找到了,下面我们就思考下如何解决该问题。

三、问题解决

对于MySQL的Innodb来说,我们通常至少分配系统内存的50%给Innodb,留出一部分给系统其他应用去使用,关于Innodb的结构我们可以参照文章

主库之前的Innodb的内存为系统内存的70%,对于这种情况显示是有点高了。所以我们在这里考虑两方面去解决问题:

  • 1)参数调整:
    • 最大连接数:适当降低连接数。
    • innodb_buffer_pool_size:适当降低Innodb的内存大小。
  • 2)实例拆分:考虑将一个实例拆分,减轻一台机器的使用压力。

如上解决方案如有不妥之处,敬请各位指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森格的博

创作不易,感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值