mysql 二进制日志后缀数字最大为多少
之前看到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的最大值()再看看,发现依旧可以继续向上加:
-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.
按照mysql的数据类型,我们还有更大的bigint,我们再次将此后缀改在2^64,即(18446744073709551616)
重启之后发现此值自动变为了,即2^63:
-rw-r-----. 1 mysql mysql 520 Aug 12 09:22 binlog57.
再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 /*!*/;
# at 4
#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 binlog is either in use or was not closed properly.
BINLOG '
3CWtVw/lDAAAdwAAAHsAAAABAAQANS43LjEyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AfJGC1A=
'/*!*/;
# at 123
#160812 9:26:52 server id 3301 end_log_pos 194 CRC32 0x4cf85ce2 Previous-GTIDs
# a97983fc-5a29-11e6-9d28-000c29d4dc3f:1802-1806
# at 194
#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'/*!*/;
# at 259
#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
/*!*/;
# at 332
#160812 9:28:13 server id 3301 end_log_pos 386 CRC32 0xb37366c7 Table_map: `zejin`.`t_users` mapped to number 109
# at 386
#160812 9:28:13 server id 3301 end_log_pos 431 CRC32 0xf13017e6 Write_rows: table id 109 flags: 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 */
# at 431
#160812 9:28:13 server id 3301 end_log_pos 462 CRC32 0x58679478 Xid = 20
COMMIT/*!*/;
ERROR: Error in 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 /*!*/;
# at 4
#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 binlog is either in use or was not closed properly.
BINLOG '
ayatVw/lDAAAdwAAAHsAAAABAAQANS43LjEyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AYM3jxo=
'/*!*/;
# at 123
#160812 9:29:15 server id 3301 end_log_pos 194 CRC32 0xfe26d3f7 Previous-GTIDs
# a97983fc-5a29-11e6-9d28-000c29d4dc3f:1802-1807
# at 194
#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'/*!*/;
# at 259
#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
/*!*/;
# at 332
#160812 9:28:13 server id 3301 end_log_pos 386 CRC32 0xb37366c7 Table_map: `zejin`.`t_users` mapped to number 109
# at 386
#160812 9:28:13 server id 3301 end_log_pos 431 CRC32 0xf13017e6 Write_rows: table id 109 flags: 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 */
# at 431
#160812 9:28:13 server id 3301 end_log_pos 462 CRC32 0x58679478 Xid = 20
COMMIT/*!*/;
# at 462
#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 /*!*/;
# at 4
#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 binlog is either in use or was not closed properly.
BINLOG '
ayatVw/lDAAAdwAAAHsAAAABAAQANS43LjEyLWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AYM3jxo=
'/*!*/;
# at 123
#160812 9:29:15 server id 3301 end_log_pos 194 CRC32 0xfe26d3f7 Previous-GTIDs
# a97983fc-5a29-11e6-9d28-000c29d4dc3f:1802-1807
# at 194
#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'/*!*/;
# at 259
#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
/*!*/;
# at 332
#160812 9:31:09 server id 3301 end_log_pos 386 CRC32 0xd3a0edfd Table_map: `zejin`.`t_users` mapped to number 109
# at 386
#160812 9:31:09 server id 3301 end_log_pos 432 CRC32 0x9146b5b0 Write_rows: table id 109 flags: 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 */
# at 432
#160812 9:31:09 server id 3301 end_log_pos 463 CRC32 0x594574f2 Xid = 22
COMMIT/*!*/;
ERROR: Error in 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二进制日志
一.二进制日志(The Binary Log) 1.简介 包含所有更新了的数据或者已经潜在更新了的数据(比如一条没有匹配任何行的delete语句) 包含所有更新语句执行时间的信息 不记录没有修改数据的 ...
- MySQl Study学习之--MySQl二进制日志管理
MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log) a.它包括的内容及作用例如以下: 包括了全部更新了数据或者已经潜在更新了数据(比方没 ...
- MySQL二进制日志(binary log)总结
本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错 ...
- MySQL二进制日志功能介绍
二进制日志记录所有更新数据的SQL语句,其中也包含可能更新数据的SQL语句,例如DELETE语句执行过程中无匹配的行.二进制日志中还包含了与执行SQL语句相关的内容,例如SQL语句执行的时间.错误代码 ...
- MySQL二进制日志的备份和恢复
二进制日志:记录数据库修改的相关操作,作用是即时点回复,主从复制 可以按时间滚动,也可以按大小滚动 server-id:服务器身份标识 一.二进制文件的删除方法,千万不要手动删除 PURGE BINA ...
- 删除MySQL二进制日志
服务器上的120G SSD硬盘空间用了92%,检查后发现,原来是 MySQL的二进制日志没有及时清除,占用了大量的空间, 于是直接用命令:reset master 一把删干净了. 1 reset ma ...
- MySQL二进制日志总结
二进制日志简单介绍 MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句.二进制日志(binary log)中记录了对MySQL数据 ...
- 查看mysql二进制日志报错问题
在排查网站被黑时想通过Mysql二进制日志找出修改字段时间,但是使用mysqlbinlog报错: [root@zfszsw1 bin]# ./mysqlbinlog /opt/mysql-bin.00 ...
- Mysql 二进制日志备份还原
Mysql 二进制日志备份还原 一.开启二进制日志 1.进入配置文件[mysqld]下添加配置 方案一 vim /etc/my.cnf log-bin = /usr/local/mysql/logs/ ...
随机推荐
- C#中的线程四(System.Threading.Thread)
C#中的线程四(System.Threading.Thread) 1.最简单的多线程调用 System.Threading.Thread类构造方法接受一个ThreadStart委托,改委托不带参数,无 ...
- Hadoop开发第4期---分布式安装
一.复制虚拟机 由于Hadoop的集群安装需要多台机器,由于条件有限,我是用虚拟机通过克隆来模拟多台机器,克隆方式如下图所示
- Word文档合并的一种实现
今天遇到一个问题,就是需要把多个Word文档的内容追加到一个目标Word文档的后面,如果我有目标文档a.doc以及其他很多个文档b.doc,c.doc…等等数量很多.这个问题,如果是在服务端的话,直接 ...
- Linux 比较判断运算(if test)
200 ? "200px" : this.width)!important;} --> 介绍 本篇文章主要是列举在shell命令中常出现的一些用来做比较的运算符,这些运算符是 ...
- Yii CModel中rules验证规则[转]
array( array(‘username’, ‘required’), array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12), array( ...
- Gradle与Gatling脚本集成
Gatling作为次时代的性能测试工具,由于其API简洁明了.性能出众,越来越受欢迎.但是运行Gatling脚本却有诸多不便,其提供的默认方式不是很方便.考虑到Gatling脚本本质上是Scala类, ...
- 推荐10个很棒的AngularJS学习指南
AngularJS 是非常棒的JS框架,能够创建功能强大,动态功能的Web app.AngularJS自2009发布以来,已经广泛应用于Web 开发中.但是对想要学习Angular JS 的人而言,只 ...
- IT传统组织结构及新型扁平化组织
如今互联网企业正凶猛的改变人们衣食住行的方方面面,衣->淘宝,蘑菇街;食->大众点评,口碑;住->去哪,途牛:行->12306, 多次听到互联网的同行介绍他们就是要“快”,快速 ...
- 通过 Redis 实现 RPC 远程方法调用(支持多种编程语
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/101.html?1455869487 我发现经常研究并且为之兴奋的一件事就 ...
- iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据
网络爬虫-使用青花瓷抓取网络数据 由于最近在研究网络爬虫相关技术,刚好看到一篇的的搬了过来! 望谅解..... 写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教 ...