之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary log files in sequence by adding a numeric suffix to the base name

就是说会在你定义的二进制文件名后再加多一个数字为结尾,那么这个数最大为多少呢(此次实验版本为5.7.12)?

我们先让其到999999,再flush logs看一下,发现还是可以继续递增

-rw-r-----. 1 mysql mysql      241 Aug 11 19:05 binlog57.1000000

-rw-r-----. 1 mysql mysql      194 Aug 11 19:05 binlog57.1000001

-rw-r-----. 1 mysql mysql      177 Aug 11 19:02 binlog57.999991

-rw-r-----. 1 mysql mysql      200 Aug 11 19:03 binlog57.999992

-rw-r-----. 1 mysql mysql      200 Aug 11 19:03 binlog57.999993

-rw-r-----. 1 mysql mysql      200 Aug 11 19:04 binlog57.999994

-rw-r-----. 1 mysql mysql      200 Aug 11 19:04 binlog57.999995

-rw-r-----. 1 mysql mysql      200 Aug 11 19:04 binlog57.999996

-rw-r-----. 1 mysql mysql      200 Aug 11 19:04 binlog57.999997

-rw-r-----. 1 mysql mysql      468 Aug 11 19:05 binlog57.999998

-rw-r-----. 1 mysql mysql      241 Aug 11 19:05 binlog57.999999

我们再把后面改成int的最大值(4294967296)再看看,发现依旧可以继续向上加:

-rw-r-----. 1 mysql mysql      241 Aug 11 19:05 binlog57.4294967290

-rw-r-----. 1 mysql mysql      244 Aug 12 09:10 binlog57.4294967291

-rw-r-----. 1 mysql mysql      244 Aug 12 09:10 binlog57.4294967292

-rw-r-----. 1 mysql mysql      244 Aug 12 09:11 binlog57.4294967293

-rw-r-----. 1 mysql mysql      244 Aug 12 09:11 binlog57.4294967294

-rw-r-----. 1 mysql mysql      244 Aug 12 09:11 binlog57.4294967295

-rw-r-----. 1 mysql mysql      244 Aug 12 09:11 binlog57.4294967296

-rw-r-----. 1 mysql mysql      244 Aug 12 09:11 binlog57.4294967297

-rw-r-----. 1 mysql mysql      244 Aug 12 09:11 binlog57.4294967298

按照mysql的数据类型,我们还有更大的bigint,我们再次将此后缀改在2^64,即(18446744073709551616)

重启之后发现此值自动变为了9223372036854775808,即2^63:

-rw-r-----. 1 mysql mysql      520 Aug 12 09:22 binlog57.9223372036854775808

再flush log都也不会变了。

那此时如果我插入记录,并flush logs,binlog里面的内容会怎样?

我们插入一条记录:

[zejin] 3301>insert into t_users values(7,'test');

Query OK, 1 row affected (0.00 sec)

解释下binlog:

解析一:

[root@zejin240 I3301]# mysqlbinlog --no-defaults -vv binlog57.9223372036854775808/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER/*!*/;

# at4#160812 9:26:52 server id 3301 end_log_pos 123 CRC32 0x500b46f2 Start: binlog v 4, server v 5.7.12-log created 160812 9:26:52# Warning: this binlogis either in use or was notclosed properly.

BINLOG'3CWtVw/lDAAAdwAAAHsAAAABAAQANS43LjEyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA

AfJGC1A='/*!*/;

# at123#160812 9:26:52 server id 3301 end_log_pos 194 CRC32 0x4cf85ce2 Previous-GTIDs

# a97983fc-5a29-11e6-9d28-000c29d4dc3f:1802-1806# at194#160812 9:28:13 server id 3301 end_log_pos 259 CRC32 0x3e10b5ae GTID last_committed=0 sequence_number=1

SET @@SESSION.GTID_NEXT= 'a97983fc-5a29-11e6-9d28-000c29d4dc3f:1807'/*!*/;

# at259#160812 9:28:13 server id 3301 end_log_pos 332 CRC32 0xe3e2c0d3 Query thread_id=2 exec_time=0 error_code=0

SET TIMESTAMP=1470965293/*!*/;SET @@session.pseudo_thread_id=2/*!*/;SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;SET @@session.sql_mode=1436549152/*!*/;SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;/*!\C utf8*//*!*/;SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN

/*!*/;

# at332#160812 9:28:13 server id 3301 end_log_pos 386 CRC32 0xb37366c7 Table_map: `zejin`.`t_users` mapped to number 109# at386#160812 9:28:13 server id 3301 end_log_pos 431 CRC32 0xf13017e6 Write_rows: table id 109flags: STMT_END_F

BINLOG'LSatVxPlDAAANgAAAIIBAAAAAG0AAAAAAAEABXplamluAAd0X3VzZXJzAAIDDwKWAADHZnOz

LSatVx7lDAAALQAAAK8BAAAAAG0AAAAAAAEAAgAC//wHAAAABHRlc3TmFzDx'/*!*/;

###INSERT INTO`zejin`.`t_users`

###SET###@1=7 /*INT meta=0 nullable=0 is_null=0*/###@2='test' /*VARSTRING(150) meta=150 nullable=0 is_null=0*/# at431#160812 9:28:13 server id 3301 end_log_pos 462 CRC32 0x58679478 Xid = 20

COMMIT/*!*/;

ERROR: Errorin Log_event::read_log_event(): 'read error', data_len: 134217728, event_type: -27

SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /*added by mysqlbinlog*/ /*!*/;

DELIMITER ;

#End of log file

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

[zejin] 3301>flush logs;

Query OK, 0 rows affected (0.01 sec)

解析二:

[root@zejin240 I3301]# mysqlbinlog --no-defaults -vv binlog57.9223372036854775808/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER/*!*/;

# at4#160812 9:29:15 server id 3301 end_log_pos 123 CRC32 0x1a8f3783 Start: binlog v 4, server v 5.7.12-log created 160812 9:29:15# Warning: this binlogis either in use or was notclosed properly.

BINLOG'ayatVw/lDAAAdwAAAHsAAAABAAQANS43LjEyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA

AYM3jxo='/*!*/;

# at123#160812 9:29:15 server id 3301 end_log_pos 194 CRC32 0xfe26d3f7 Previous-GTIDs

# a97983fc-5a29-11e6-9d28-000c29d4dc3f:1802-1807# at194#160812 9:28:13 server id 3301 end_log_pos 259 CRC32 0x3e10b5ae GTID last_committed=0 sequence_number=1

SET @@SESSION.GTID_NEXT= 'a97983fc-5a29-11e6-9d28-000c29d4dc3f:1807'/*!*/;

# at259#160812 9:28:13 server id 3301 end_log_pos 332 CRC32 0xe3e2c0d3 Query thread_id=2 exec_time=0 error_code=0

SET TIMESTAMP=1470965293/*!*/;SET @@session.pseudo_thread_id=2/*!*/;SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;SET @@session.sql_mode=1436549152/*!*/;SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;/*!\C utf8*//*!*/;SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN

/*!*/;

# at332#160812 9:28:13 server id 3301 end_log_pos 386 CRC32 0xb37366c7 Table_map: `zejin`.`t_users` mapped to number 109# at386#160812 9:28:13 server id 3301 end_log_pos 431 CRC32 0xf13017e6 Write_rows: table id 109flags: STMT_END_F

BINLOG'LSatVxPlDAAANgAAAIIBAAAAAG0AAAAAAAEABXplamluAAd0X3VzZXJzAAIDDwKWAADHZnOz

LSatVx7lDAAALQAAAK8BAAAAAG0AAAAAAAEAAgAC//wHAAAABHRlc3TmFzDx'/*!*/;

###INSERT INTO`zejin`.`t_users`

###SET###@1=7 /*INT meta=0 nullable=0 is_null=0*/###@2='test' /*VARSTRING(150) meta=150 nullable=0 is_null=0*/# at431#160812 9:28:13 server id 3301 end_log_pos 462 CRC32 0x58679478 Xid = 20

COMMIT/*!*/;

# at462#160812 9:29:15 server id 3301 end_log_pos 521 CRC32 0xc86262e6 Rotate to binlog57.9223372036854775808 pos: 4

SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /*added by mysqlbinlog*/ /*!*/;

DELIMITER ;

#End of log file

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

再插入一条记录:

[zejin] 3301>insert into t_users values(8,'test1');

Query OK, 1 row affected (0.01 sec)

解析三:

[root@zejin240 I3301]# mysqlbinlog --no-defaults -vv binlog57.9223372036854775808/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER/*!*/;

# at4#160812 9:29:15 server id 3301 end_log_pos 123 CRC32 0x1a8f3783 Start: binlog v 4, server v 5.7.12-log created 160812 9:29:15# Warning: this binlogis either in use or was notclosed properly.

BINLOG'ayatVw/lDAAAdwAAAHsAAAABAAQANS43LjEyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA

AYM3jxo='/*!*/;

# at123#160812 9:29:15 server id 3301 end_log_pos 194 CRC32 0xfe26d3f7 Previous-GTIDs

# a97983fc-5a29-11e6-9d28-000c29d4dc3f:1802-1807# at194#160812 9:31:09 server id 3301 end_log_pos 259 CRC32 0xad1dc1f6 GTID last_committed=0 sequence_number=1

SET @@SESSION.GTID_NEXT= 'a97983fc-5a29-11e6-9d28-000c29d4dc3f:1808'/*!*/;

# at259#160812 9:31:09 server id 3301 end_log_pos 332 CRC32 0x62cde234 Query thread_id=2 exec_time=0 error_code=0

SET TIMESTAMP=1470965469/*!*/;SET @@session.pseudo_thread_id=2/*!*/;SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;SET @@session.sql_mode=1436549152/*!*/;SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;/*!\C utf8*//*!*/;SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;SET @@session.lc_time_names=0/*!*/;SET @@session.collation_database=DEFAULT/*!*/;BEGIN

/*!*/;

# at332#160812 9:31:09 server id 3301 end_log_pos 386 CRC32 0xd3a0edfd Table_map: `zejin`.`t_users` mapped to number 109# at386#160812 9:31:09 server id 3301 end_log_pos 432 CRC32 0x9146b5b0 Write_rows: table id 109flags: STMT_END_F

BINLOG'3SatVxPlDAAANgAAAIIBAAAAAG0AAAAAAAEABXplamluAAd0X3VzZXJzAAIDDwKWAAD97aDT

3SatVx7lDAAALgAAALABAAAAAG0AAAAAAAEAAgAC//wIAAAABXRlc3QxsLVGkQ=='/*!*/;

###INSERT INTO`zejin`.`t_users`

###SET###@1=8 /*INT meta=0 nullable=0 is_null=0*/###@2='test1' /*VARSTRING(150) meta=150 nullable=0 is_null=0*/# at432#160812 9:31:09 server id 3301 end_log_pos 463 CRC32 0x594574f2 Xid = 22

COMMIT/*!*/;

ERROR: Errorin Log_event::read_log_event(): 'read error', data_len: 150994944, event_type: -27

SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /*added by mysqlbinlog*/ /*!*/;

DELIMITER ;

#End of log file

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

发现flush log后解析的binlog中会产生一个错误:

ERROR: Error in Log_event::read_log_event(): 'read error', data_len: 150994944, event_type: -27

对比解析一与解释三就会发现,超过此最大值后,flush log命令会覆盖掉之前的数据,并且binlog后面的数字后缀永远停留在9223372036854775808。这种情况下肯定是有问题的。

不过话说回来,你说生产环境下什么时候些值才可能超过这个数呢,按每秒产生1个binlog的速度来计算,我们需要9223372036854775808/60/60/24/365/10^9=2924.7亿年,估计它没挂,地球都挂了,它会陪你活到天荒地老……

mysql 二进制 最大长度_mysql 二进制日志后缀数字最大为多少相关推荐

  1. mysql 二进制日志后缀数字最大为多少

    之前看到mysql二进制日志后面会加一个以数字递增为结尾的后缀,一直在想当尾数到达999999后会发生什么情况,先查了一下官网,对后缀有这样一句介绍:The server creates binary ...

  2. mysql字段的长度_MySQL字段的长度

    MySQL字段有多种的类型,不同的MySQL字段长度也各不一样,下面就为您介绍各种MySQL字段的长度,供您参考学习之用. 数值类型 列类型 需要的存储量 TINYINT 1 字节 SMALLINT ...

  3. mysql 二进制安装卸载_MySQL二进制版本的安装及卸载

    二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一 下即可使用,卸载也方便,直接删除即可:现在以mysql-standard-4. ...

  4. mysql二进制还原表_MYSQL 二进制还原

    解决方法: mysqlbinlog bin_log_file_path_and_name | mysql -uroot -p 如: mysqlbinlog E:\DB\mysql_log\mysql_ ...

  5. mysql 数值类型 长度_mysql中的数据类型的长度

    位,字节,字 --------------------------------------------------------------- 8位(bit)=1字节(Byte),1024字节=1KB: ...

  6. mysql binlog过期策略_MySQL binlog日志优化方案

    Binlog 相关参数及优化策略 我们首先看看Binlog 的相关参数,通过执行如下命令可以获得关于Binlog 的相关参数.当然,其中也显示出了" innodb_locks_unsafe_ ...

  7. mysql 联合索引长度_MySQL 中索引的长度的限制

    单列索引的长度的限制 (5.6里面默认不能超过767bytes,5.7不超过3072bytes): 起因是256×3-1=767.这个3是字符最大占用空间(utf8).但是在5.5以后,开始支持4个字 ...

  8. mysql数据类型默认长度_mysql数据类型长度

    1个字节= 8位  tinyint 为一个字节  2的8次方= 256 所以最多存储到256 日期和时间数据类型 MySQL数据类型 含义 date 3字节,日期,格式:2014-09-18 time ...

  9. mysql 获取昨天凌晨_MySQL慢日志体系建设

    慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值的SQL语句,在很大程度上会影响数据库整体的性能,是MySQL优化的一个重要方向.在58的云DB平台建设中,慢SQL系统 ...

最新文章

  1. 中断原理在计算机中的应用,计算机组成原理期末考试简答题重点
  2. 《系统集成项目管理工程师》必背100个知识点-94我国信息化战略目标
  3. jmeter mysql 连接复用_JMeter 连接MySQL
  4. QUIC 之类的可靠传输协议
  5. 函数,游标与存储过程的综合应用
  6. 数学课本上的几大变态
  7. [新闻]炫目的全景与视频监控结合应用
  8. Android 数据访问之External Storage 数据保存在sd卡 demo+笔记
  9. STM32H7时钟树RCC分析--- HAL库配置(二)
  10. c# 存储图片到oracle,c# winform 读取oracle中blob字段的图片并且显示到pictureBox里 保存进库...
  11. de4dot 反混淆工具使用
  12. 计算机专业专业课代号408,计算机408有多难
  13. 幻幕广告上线,沉浸式体验塑造大片即视感
  14. 大数据发展趋势和Spark介绍
  15. 1、socket是什么意思
  16. 2018再见,2019你好
  17. Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/po/IdCard
  18. 金融行业部分公司待遇汇总
  19. EasyUI DataGrid DetailView(数据表格详细展示带子表格)
  20. 设置coursera DNS

热门文章

  1. Java实现喝酒掷骰子Swing小程序
  2. MOOC上的word技巧
  3. dnfdpl服务器维护了,DNF5月dpl奖励“暗改”:强化器、时空石没了,史派克逼退玩家...
  4. Apache Geronimo 2.2发布
  5. Tensorflow实现kaggle猫狗识别(循序渐进进行网络设计)
  6. microsoft edge怎么截长图_苹果安卓手机怎么截长图?超简单的方法拿走不谢
  7. Java通过steam实现数据分组
  8. ❤️❤️❤️前端成神之路必看学习资源(一),建议收藏起来,偷偷学习!!!❤️❤️❤️
  9. node爬虫(伪造header)
  10. 《王者荣耀》技术总监:我们为什么要在技术架构与网络同步方案上做出这些改变?