mysql老叶博客_MySQL binlog后面的编号最大是多大?【老叶茶馆公众号】

MySQL binlog文件编号最大为2147483647,超过此数值会导致报错并使mysqld退出。当binlog文件名超过1000时,系统会在错误日志中提示归档。若发生此类错误,可通过reset master清理之前的binlog。
摘要由CSDN通过智能技术生成

MySQL binlog后面的编号最大是多大?

具体文章请关注微信公众号:izhishuedu 【知数堂】 知数堂版权所有。

这里我就不啰嗦了,直接上贴代码:

版本:5.7.18

mysql-5.7.18/sql/binlog.cc  大约在3310行开始:

9858efb255d568b882a0a73879f46e6d.png

MAX_LOG_UNIQUE_FN_EXT这个值在mysql-5.7.18/sql/binlog.cc  的3253行有定义。是0x7FFFFFFF,转换成10进制就是2147483647。也就是binlog文件编号最大到2147483647(文件名可以为这个),超过就个就报错退出了。

3da7f77080b950e74e01d12698b35791.png

be9fd67217e5e210ab6e233dd4dcb0b8.png

上面2张图中,可以看到有个宏定义LOG_WARN_UNIQUE_FN_EXT_LEFT 为1000,就是说当binlog文件名超过1000时候,就会在errlog里面记录"请考虑归档部分binlogs"。

如果我们人工创建个binlog文件名为mysql-bin.2147483645 然后启动mysql,并执行几次flush logs,就会触发binlog最大值的报错。

报错导致mysqld退出后,我们可以去看下errlog里面内容如下:

6e0af77f4833ad8eed4de0159311d814.png

这时候,解决办法就是reset master; 清理掉之前的binlog。

当然,按照目前常理来讲,即便我们1分钟切割一次binlog,要达到最大值也要4K年。一般我们不会遇到这个问题的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值