mysqld 进程非常多_MySQL binlog后面的编号最大是多大?
导读
每个binlog文件都有编号,从最早的3位数(没错,很老的版本只有3位数~),到现在扩展到6位数,从000001开始计数。
但我打赌,你一定不知道这个序号最大可以跑到多少。
在我们知数堂的MySQL DBA课上讲到binlog序号是从000001开始,这时有细心的同学问到,是不是这个序号达到999999后,binlog就要重新开始了?
讲真,当时我也是一下子被问住了,只是隐约记得这个值是可以大于999999的。于是,课后我自己细致地探究了一番,遂有本文。
MySQL在启动时会扫一下binlog文件,找到最大的序号,然后产生下个序号文件。根据这个规则,我们可以自行测试一下,若当前最大的binlog序号是 999999 时,下一个文件序号是重新从 000001 开始,抑或是 1000000 呢?
- 测试一,当文件序号达到999999后,下一个新文件序号是多少
把mysqld关掉,人为造出序号为999999的binlog,并直接启动mysqld,看看会怎样呢?
执行 show master status 进行确认
可以看到,mysqld并没有挂掉,也没重新从mysql-bin.000001开始,这个序号会继续增加。
现在,我们再深挖下这个问题,最大的序号到底是多少呢?
我们课上教学使用的版本是mysql 5.7.18,下载相应版本的源码直接看好了,在 sql/binlog.cc 文件中我们找到下面这段代码:
在上面这段代码中,我们看到如下判断:
if (max_found == MAX_LOG_UNIQUE_FN_EXT)
也就是当找到binlog文件最大序号,达到起定义的最大值时,mysqld就会退出。
我们再看下 MAX_LOG_UNIQUE_FN_EXT 宏定义:
#define MAX_LOG_UNIQUE_FN_EXT 0x7FFFFFFF
把它转成十进制看下:
这个值等于:pow(2,31) - 1
- 测试二,测试binlog序号达到最大值后会怎样
手动创建一个序号较大的binlog,比如mysql-bin.2147483640。把所有日志文名都写入到 mysql-bin.index 中,并确认 mysql-bin.000001 文件存在(看会不会被覆盖或者其他的)。
touch mysql-bin.2147483640
然后启动mysqld,再执行 FLUSH LOGS,看看会怎样。
这时,我们能看到 mysqld 启动,日志里记录的告警信息:
我们多执行几次 FLUSH LOGS,切换日志,直到序号达到最大值,看看会发生什么:
第一次切换会发出一个 ERROR 级别错误日志,第二次再切换,直接导致 mysqld 进程退出了。看看错误日志:
看这架势,是想生成 mysql-bin.(1-999) 这样的文件而未果。于是我们再进行下面的测试。
- 测试三,测试binlog序号能不能循环重来
还是 touch 一个较大序号的binlog,比如mysql-bin.2147483646。把所有日志文名都写入到 mysql-bin.index 中,并确认 mysql-bin.000001 文件到 mysql-bin.000999 这些文件都不存在(和测试二不同,这次是要确保这些文件不存在,看能不能重复利用)。
然后启动mysqld,再执行 FLUSH LOGS,看看会怎样。
可以看到,还是会退出,并没有进行日志的轮转再次重复利用。
最后,关于binlog的序号问题,我们结论如下:
- binlog的最大序号是 pow(2,31)-1 = 2147483647。
- 当序号接近这个值,且差距小于 1000 时(也就是序号大于 2147482647 时),就开始向error log中写入警告。
- 当序号达到最大值时,mysqld 进程直接退出。
- 生成新的binlog时,会扫描当前已存在的binlog文件,最终取得最大序号值。因此,如果binlog文件数目特别多的话,是会影响MySQL的启动及日志切换效率的。
- 由此可见有两个隐患,当binlog文件数目过大,会导致binlog切换效率较低。当binlog文件最大序号快达到最大值时,离mysqld进程挂掉就不远了,需要加急处理。
- 因此,除了要监控binlog文件数目、最大序号外,还应该再error log的内容,都予以足够重视。
最后祝大家的mysqld进程都棒棒哒!
关于「3306π」社区
围绕 MySQL 核心技术,将互联网行业中最重要的数据化解决方案带到传统行业中;囊括其他开源技术Redis、MongoDB、Hbase、Hadoop、ElasticSearch、Storm、Spark等;分享干货知识,即便是赞助商,也要求如此,拒绝放水。
mysqld 进程非常多_MySQL binlog后面的编号最大是多大?相关推荐
- mysql老叶博客_MySQL binlog后面的编号最大是多大?【老叶茶馆公众号】
MySQL binlog后面的编号最大是多大? 具体文章请关注微信公众号:izhishuedu [知数堂] 知数堂版权所有. 这里我就不啰嗦了,直接上贴代码: 版本:5.7.18 mysql-5.7. ...
- MySQL binlog后面的编号最大是多大?【老叶茶馆公众号】
MySQL binlog后面的编号最大是多大? 原文地址:http://mp.weixin.qq.com/s/gDpWhlBawRal_pQK2huTMA 具体文章请关注微信公众号:izhishued ...
- mysql binlog 多少,MySQL binlog后面的编号最大是多大?
在上课中讲到MySQL的binlog是mysql-bin.000001,有细心的学习提到,是不是这个达到mysql-bin.999999后数据库的binlog就要重新开始了? 对于这个问题一时间也被问 ...
- MySQL 的 binlog 编号竟然可以这么大!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://urlify.cn/VVFFN ...
- 阿里mysql 二进制_Mysql binlog 之阿里canal
1.What is Canal? canal [kə'næl],中文翻译为 水道/管道/沟渠/运河,主要用途是用于 MySQL 数据库增量日志数据的订阅.消费和解析,是阿里巴巴开发并开源的,采用Jav ...
- mysqlbinlog工具_MySQL binlog相关分析
1.redolog.binlog的简单分析图解:redolog和binlog机制2.开启binlog及关注点3.关注binlog的相关参数4.binlog模式分析5.关于binlog的使用补充:双一模 ...
- 技术分享 | MySQL中MGR中SECONDARY节点磁盘满,导致mysqld进程被OOM Killed
欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答 在MGR测试中,人为制造磁盘满问题后,节点被oom killed 问题描述 在对 ...
- mysqld进程 ut_delay 占用率过高
采用性能分析工具perf top -p mysqld进程 在测试mysql数据库时,用perf top如果看到热点函数是ut_delay或者_raw_spin_lock的话,说明锁争用比较严重. ut ...
- mysql 内存太大被杀_数据库mysqld进程频繁被杀解决方案[终]
重要:本文最后更新于2018-11-25 23:33:42,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗. 上次数据库mysql进程总是被杀,以前眼光不够长远,认为mysql被杀就是 ...
最新文章
- RouterOS连载3:架设PPPoE服务
- getResources().getIdentifier(textView01, id, cn.xxx.xxx);
- python爬虫工程师-记录一下自己找“python爬虫工程师实习生”岗位的经历
- Python 第2周 - Python基础-模块\数据运算
- C# 中 StringBuilder和String的区别
- 数字转化成时分秒(二)
- jquery源码抽丝剥茧--把jquery最小化
- C#:抽象类和抽象函数, 密封类和密封方法(抄录自LilianChen)
- 闪电网络开启BTC支付时代?他们不同意
- matlab小波滤波详解,基于matlab的振动波形小波分析及小波基础知识学习
- Cisco路由器的命令配置教程详解
- 伽罗瓦2^8域下模多项式求逆python(查表)实现
- java tiff 压缩,使用Java ImageIO进行Tiff压缩
- 角色动画中的骨骼蒙皮技术
- win 10卸载mysql_Windows 10系统下彻底删除卸载MySQL的方法教程
- 辽宁 viewpro.php,辽宁省策划学会赴沙地沟村考察
- mysql查看数据库事务隔离级别_MySQL查看和修改事务隔离级别的实例讲解
- css控制英文字母的大小写
- idea 导入halo报错
- 日常工作笔记0807
热门文章
- 测试用例 集成测试增删改查_20年高级测试人员的进阶汇总
- 周易的含义_朱熹与《周易本义》
- dtsi与dts_[dts]DTS实例分析
- 分数阶simulink工具箱_CCDC 2021特别专题:分数阶微积分与分数阶系统
- 阿里云西安ACE同城会 | 钉钉生态应用促进企业信息化实战沙龙
- 分享一下我的JAVA自学历程,加上我觉得效果还不错的方法
- 创作一个数字人,总共分几步?(下)
- 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步
- DOTA2:IG实力不如Nigma?解说:错了,让门票给他们自己回家训练
- 2021年8月Web服务器排行榜:Nginx牛市上升