iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >从MySQL源码看日志命令失效的原因有哪些
  • 371
分享到

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

2024-04-02 19:04:59 371人浏览 安东尼
摘要

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

这篇文章主要为大家展示了“从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源码看日志命令失效的原因有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 从MySQL源码看日志命令失效的原因有哪些

本文链接: https://www.lsjlt.com/news/62685.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 从MySQL源码看日志命令失效的原因有哪些
    这篇文章主要为大家展示了“从MySQL源码看日志命令失效的原因有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“从MySQL源码看日志命令失效的原因有哪些”这...
    99+
    2024-04-02
  • linux查看日志的命令有哪些
    这篇文章主要讲解了“linux查看日志的命令有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux查看日志的命令有哪些”吧!linux查看日志的命令:1、tail命令,可查看实时变化...
    99+
    2023-07-04
  • MySQL索引失效的原因有哪些
    MySQL索引失效的原因可能包括以下几点: 数据量过大:当数据量过大时,即使使用了索引,也可能因为需要扫描大量数据而导致索引失效...
    99+
    2024-04-09
    mysql
  • MySQL索引失效有哪些原因
    MySQL索引失效有哪些原因,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。单个索引1、使用!= 或者 <> 导致索引失效SELEC...
    99+
    2024-04-02
  • 从Spring源码解析事务失效的原因
    目录一、前言二、方法不是 public 的三、内部方法间调用导致事务失效四、异常类型是否配置正确五、异常被catch住一、前言 1.Bean是否是代理对象 2.入口函数是否是pub...
    99+
    2024-04-02
  • css失效的原因有哪些
    本篇文章给大家分享的是有关css失效的原因有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。css失效的原因:一、div 标签未关闭这是版面设计失效的最常见原因之一。当我们了...
    99+
    2023-06-14
  • Session失效的原因有哪些
    Session失效的原因可以有以下几种:1. 超时:Session有一个设置的时间限制,如果在设定的时间内没有进行任何操作,Sess...
    99+
    2023-08-17
    Session
  • Linux系统查看tomcat日志命令有哪些
    小编给大家分享一下Linux系统查看tomcat日志命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.查看实时日志文件 tail -...
    99+
    2023-06-28
  • mysql设置外键失效的原因有哪些
    MySQL设置外键失效的原因有以下几种:1. 数据类型不匹配:外键字段和参照字段的数据类型不一致,如外键字段是int类型,而参照字段...
    99+
    2023-10-12
    mysql
  • mysql索引失效的常见原因有哪些
    本篇内容介绍了“mysql索引失效的常见原因有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:MySQL中提高性能的一个最有效的方式...
    99+
    2023-06-30
  • oracle session失效的原因有哪些
    网络连接问题:如果网络连接不稳定或者断开,可能会导致Oracle session失效。 超时问题:Oracle数据库设置了sess...
    99+
    2024-04-09
    oracle
  • Linux系统查看日志文件命令有哪些
    这篇文章主要为大家展示了Linux系统查看日志文件命令有哪些,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Linux系统查看日志文件命令有哪些”这篇文章吧。Log位置:/var/log/messa...
    99+
    2023-06-28
  • 读Nodejs源码的原因有哪些
    这篇文章主要介绍“读Nodejs源码的原因有哪些”,在日常操作中,相信很多人在读Nodejs源码的原因有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”读Nodejs源码的...
    99+
    2024-04-02
  • oracle索引失效的原因有哪些
    有以下几个常见的原因会导致Oracle索引失效: 数据分布不均匀:如果索引列的数据分布不均匀,即某些值出现的频率较高,而其他值出...
    99+
    2024-04-09
    oracle
  • Linux系统查看服务器日志命令有哪些
    本文将为大家详细介绍“Linux系统查看服务器日志命令有哪些”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统查看服务器日志命令有哪些”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容...
    99+
    2023-06-28
  • Redis缓存失效的原因有哪些
    Redis缓存失效的原因有以下几个: 过期时间到期:Redis缓存可以设置一个过期时间,当缓存的过期时间到期时,缓存就会失效。这...
    99+
    2023-10-27
    Redis
  • @Transactional 注解失效的原因有哪些
    @Transactional 注解失效的原因有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、事务事务管理在系统开发中是不可缺少的一...
    99+
    2024-04-02
  • Java日志出问题的原因有哪些
    本篇内容主要讲解“Java日志出问题的原因有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java日志出问题的原因有哪些”吧!用了那么久的日志框架,你是否仍会遇到即使配置了日志,日志依然不知...
    99+
    2023-06-15
  • oracle日志切换过快的原因有哪些
    这篇文章将为大家详细讲解有关oracle日志切换过快的原因有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Oracle 日志切换过快的原因 I. 系统配置问题 日志文件大小过小:日志文件大小应根据系...
    99+
    2024-05-13
    日志文件大小过小 日志文件组数量不足 检查点间隔过大 高事务量 IO瓶颈
  • @Autowired注解及失效的原因有哪些
    这篇文章主要讲解了“@Autowired注解及失效的原因有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“@Autowired注解及失效的原因有哪些”吧!1、Autowired注解作用使构...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作