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/ ...
随机推荐
- Amazon RDS MySQL数据库还原时 log_bin_trust_function_creators 错误解决办法
使用了Amazon AWS EC2免费云空间,数据库实例采用Amazon RDS.原来在Windows Server上有一个存在大量数据的MySQL数据库.现在需要在Amazon RDS上还原这个My ...
- 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ff5832bb8fec206ce2185d 导语 QFix 是手Q团队近期推 ...
- Entity Framework 5.0系列之自动生成Code First代码
在前面的文章中我们提到Entity Framework的"Code First"模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework P ...
- jQuery自动加载更多程序
1.1.1 摘要 现在,我们经常使用的微博.微信或其他应用都有异步加载功能,简而言之,就是我们在刷微博或微信时,移动到界面的顶端或低端后程序通过异步的方式进行加载数据,这种方式加快了数据的加载速度,由 ...
- Qt QT_BEGIN_NAMESPACE
问题 阅读Qt的Demo源码的时候,经常在头文件中, 声明类型的部分有以下这样的代码: class MyClassA; ///< 自定义类的声明 QT_BEGIN_NAMESPACE class ...
- Node.js入门:文件查找机制
文件查找流程图 从文件模块缓存中加载 尽管原生模块与文件模块的优先级不同,但是都不会优先于从文件模块的缓存中加载已经存在的模块. 从原生模块加载 原生模块的优先级仅次于文件模块缓存的优 ...
- Lua: 好的, 坏的, 和坑爹的
好的 小巧: 20000行C代码 可以编译进182K的可执行文件 (Linux下). 可移植: 只要是有ANSI ...
- Visual Studio 2012系统环境变量设置(命令行)
方法1.运行脚本vsvars32.bat:D:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\vsvars32.bat ...
- Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换
Atitit 跨平台异常处理(2)--------异常转换 -----java c# js异常对象结构比较and转换 { "@type":"java.lang.Runti ...
- C#教程(1) -- .Net与C#简介
(1).Net .Net指.Net平台或者是.Net Framework框架. 如果你把.Net平台想象成一个厨房,那么.Net Framework框架就是其中的柴米油盐酱醋茶. 如果你把.Net平台 ...