文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

从MySQL源码看日志命令失效的原因有哪些

2024-04-02 19:55

关注

这篇文章主要为大家展示了“从MySQL源码看日志命令失效的原因有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“从MySQL源码看日志命令失效的原因有哪些”这篇文章吧。

今天看数据库内核月报,发现一个蛮有意思的问题,就是show binary logs的时候没有任何结果,这个问题的原因很简单,但是分析问题的过程相比是艰辛的,需要在各种潜在的可能中找到那个肯定的结果。当然这个问题带给我的最大福利不是解决了这个问题,而是通过这个问题我们可以换一个思路来分析,比如说通过源码的方式来了解更多的细节。

我在自己的电脑上下载了MySQL近几个版本的源码,平时很少看,但是环境基本配置好了,就等待一些实用快捷的案例了。

首先复现下问题,我所测试的版本是5.6,使用show binary logs查看binlog的信息时,得到的结果如下:

mysql> show binary logs;

Empty set (0.00 sec)

而实际上这个环境是存在binlog的,毫无疑问,binlog是打开的。

从MySQL源码看日志命令失效的原因有哪些

我们可以在系统层面看到这些binlog

从MySQL源码看日志命令失效的原因有哪些

可以通过binlog.index文件看到,确实是存在这些binlog的。

从MySQL源码看日志命令失效的原因有哪些

因为我知道了问题的答案,所以就顺着里面的疑点来看,上面的index文件看起来比较奇怪,怎么第1行是空着的。

所以顺着这个思路,可以看看是否是由于这个问题导致。

阿里的同学在文章 http://mysql.taobao.org/monthly/2017/09/03/

给出了参考的文件,是rpl_master.cc,简单翻译就是属于replication部分,master端的。我们在master端使用的命令show master status,或者是reset master,里面的实现细节都在这个文件里面,所以我们举一反三,还有一个文件是rpl_slave,使用的reset_slave, start slave,stop slave,show slave status等等,都是在这个文件里面的。

我们查看文件rpl_master.cc文件看看里面的实现部分。如果使用eclipse的方式查看基本就能通过几个维度来看到一些明细的信息,左边的是代码的层级结构,中间的是指定的函数,比如show binary logs的实现,右边的是一些概览,比如变量,方法等。

从MySQL源码看日志命令失效的原因有哪些

当然rpl_master和rpl_slave的代码量相差巨大,rpl_slave加入了GTID的部分,可以看到大量的注释。

而rpl_master中,我们可以很快看到下面的逻辑。如果是空行或者是EOF结尾都会被视为文件的末尾,上面1行是调用了index文件得到一个列表的信息。

从MySQL源码看日志命令失效的原因有哪些

所以这个问题的明白了原委,修复起来也就很简单了。直接删掉那个空行,然后再次刷新日志即可。

先删掉空格,然后刷新日志,如下所示。

从MySQL源码看日志命令失效的原因有哪些

所以按照这个思路,我们可以在rpl_slave中找到自己自己想得到的内容,比如Seconds_Behind_Master的含义,代码中自有黄金屋。注释中甚至给出了伪代码,把计算的流程说得很详细。

从MySQL源码看日志命令失效的原因有哪些

里面的代码解释还是很详细的,感觉和读文档的感觉差不多。

从MySQL源码看日志命令失效的原因有哪些

当然里面也说得很明确,Seconds_Behind_Master不能全信,有时候也是不准的。

从MySQL源码看日志命令失效的原因有哪些

读了一会代码,发现request_dump的实现里还有些不完善的地方。代码里看起来也是很无奈,只能以后修复了。

从MySQL源码看日志命令失效的原因有哪些

以上是“从MySQL源码看日志命令失效的原因有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯