分析解决MySQL数据库的数据延迟跳动

今天分析了另外一个关于数据库延迟跳动的问题,也算是比较典型,这个过程中也有一些分析问题的方法和技巧工参考。
首先在高可用检测中,有一套环境的检测时断时续,经过排查发现是数据库产生了延迟,在登录到从库show slave status查看,会发现seconds_behind_master的值是不断跳动的,即从0~39~0~39这样的频率不断跳动,让人很搓火。
查看数据库的相关日志发现竟然没有任何可以参考的日志记录,怎么分析这个问题呢,我们先来复现,于是我按照节奏抓取了3次问题出现的日志,即通过show slave status连续监测,抓取show slave status输出的结果保存下来,这样我们就得到了一个问题发生过程中的偏移量变化,而这个变化则是在sqlthread在回放过程中产生的问题。
比如下面的一段输出,我截取的是slave端的relay log进行分析,相应的字段为relay_log_pos
所以很快得到了偏移量的变化情况:385983806 ,386062813 ,386125580
接着我使用mysqlbinlog开始分析这些日志过程中的明细,根据如下的命令可以很快得到转储的日志中相关的表有3张。
我逐步分析了每张表的数据操作情况,得到的信息还是比较有限,继续做更进一步的分析,比如我们分析一下整个日志中的事务量大小:
可以看到是5k左右,算是比较大了,而这些额外的信息从哪里获得呢,我在主库开启了general_log,这样就能够得到更细粒度的操作日志了。
进一步分析发现,整个业务使用了显示事务的方式:set autocommit=0,整个事务中包含了几个大sql,里面存储了很多操作日志明细,而且在事务操作过程中还基于mybatis框架调用了多次select count(1) from xxx的操作。
经过和业务沟通也基本明确了以上问题。

3D搭配AR技术酷炫体验游戏逐渐崭露头角
集成电容类型及仿真方法
HC8218 阿拉伯电话本来电显示电话芯片
中易云巡检系统:智能巡检,设备点检,维护设备正常运转
白炽灯泡禁用 LED照明商机大
分析解决MySQL数据库的数据延迟跳动
TRACO Power高功率密度DC/DC转换器介绍
智能门锁迎来“换锁潮”,这些配置标准需牢记
怎样选购适合自己的投影仪?力荐一款实力黑马型选手
英飞凌坐拥30亿美元收购现金 难寻目标
贸易战、汇率波动...联创光电2018如何实现业绩再增?
无线生物识别锁的制作
我们都生活在一个计算机模拟出来的世界里,你相信吗?
上半年印度高端智能手机出货量增加18%,三星占据37%的份额
Kang Watch智能血压手表高调亮相
马达驱动厂商:深圳市联德合微电子有限公司简介
微软的Xbox Series X及索尼的PS5主机即将正式上市
汽车芯片封装工艺:深入探究芯片封装的详细工艺流程
助焊膏有什么作用?什么成份?
【GD32L233C-START】DAC输出(正弦波、锯齿波、方波)