[root@VM_0_6_centos binlog]# ll -lhrt
total 163M
-rw-r----- 1 mysql mysql 2.9K Mar 30 01:35 binlog.000082
-rw-r----- 1 mysql mysql 2.0K Mar 30 01:54 binlog.000083
-rw-r----- 1 mysql mysql 7.3K Mar 30 15:17 binlog.000084
-rw-r----- 1 mysql mysql 148 Mar 30 15:17 binlog.index
-rw-r----- 1 mysql mysql 163M Apr 1 14:07 binlog.000085
[root@VM_0_6_centos binlog]#
复制
我们通过观察可得到binlog.000084这个文件的开始时间是“2020-03-30 01:54”(读binlog.000083的文件时间)。但如果我们只拿到一个binlog文件,又或者我想知道上述binlog.000082的开始时间呢?方法当然是有的,我们可以使用mysqlbinlog命令把binlog解析出来,然后再查看即可,例如:
[root@VM_0_6_centos binlog]# mysqlbinlog -v binlog.000082 | head
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200327 23:45:14 server id 63306 end_log_pos 124 CRC32 0xfad483d6 Start: binlog v 4, server v 8.0.19 created 200327 23:45:14 at startup
ROLLBACK/*!*/;
BINLOG '
ih9+Xg9K9wAAeAAAAHwAAAAAAAQAOC4wLjE5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACKH35eEwANAAgAAAAABAAEAAAAYAAEGggAAAAICAgCAAAACgoKKioAEjQA
CgHWg9T6
[root@VM_0_6_centos binlog]#
复制
function getBinlogStartTime()
{
theFile="$1"
#取出文件头做分析
binlogHead=`hexdump ${theFile} | head -1`
#binlog文件校验
binlogCrc=`echo $binlogHead | awk '{print $1$2$3}'`
if [ "${binlogCrc}" != '000000062fe6e69' ]; then
echo '${theFile} is damage.'
exit 1
fi
#计算binlog的开始时间
binlogBeginTimeInt=`echo $binlogHead | awk '{print $5$4}' | gawk ' { printf strtonum("0x" $0)}' `
binlogBeginTime=`date -d "1970-01-01 UTC $binlogBeginTimeInt seconds" "+%F %T"`
echo $binlogBeginTime
}
#调用方法:getBinlogStartTime binlog.000082
复制
[root@VM_0_6_centos binlog]# ll -lhrt
total 163M
-rw-r----- 1 mysql mysql 2.9K Mar 30 01:35 binlog.000082
-rw-r----- 1 mysql mysql 2.0K Mar 30 01:54 binlog.000083
-rw-r----- 1 mysql mysql 7.3K Mar 30 15:17 binlog.000084
-rw-r----- 1 mysql mysql 148 Mar 30 15:17 binlog.index
-rw-r----- 1 mysql mysql 163M Apr 1 14:07 binlog.000085
[root@VM_0_6_centos binlog]# function getBinlogStartTime()
> {
> theFile="$1"
> #取出文件头做分析
> binlogHead=`hexdump ${theFile} | head -1`
> #binlog文件校验
> binlogCrc=`echo $binlogHead | awk '{print $1$2$3}'`
> if [ "${binlogCrc}" != '000000062fe6e69' ]; then
> echo '${theFile} is damage.'
> exit 1
> fi
> #计算binlog的开始时间
> binlogBeginTimeInt=`echo $binlogHead | awk '{print $5$4}' | gawk ' { printf strtonum("0x" $0)}' `
> binlogBeginTime=`date -d "1970-01-01 UTC $binlogBeginTimeInt seconds" "+%F %T"`
> echo $binlogBeginTime
> }
[root@VM_0_6_centos binlog]#
[root@VM_0_6_centos binlog]# getBinlogStartTime binlog.000082
2020-03-27 23:45:14
[root@VM_0_6_centos binlog]# getBinlogStartTime binlog.000085
2020-03-30 15:17:40
[root@VM_0_6_centos binlog]#
复制
长按下图二维码,关注更多数据库实用技巧。

文章转载自小灯数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1236次阅读
2025-03-13 11:40:53
MySQL8.0统计信息总结
闫建(Rock Yan)
462次阅读
2025-03-17 16:04:03
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
443次阅读
2025-03-13 14:38:19
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
440次阅读
2025-03-04 21:56:13
SQL优化 - explain查看SQL执行计划(一)
金同学
380次阅读
2025-03-13 16:04:22
MySQL突然崩溃?教你用gdb解剖core文件,快速锁定“元凶”!
szrsu
324次阅读
2025-03-13 00:29:43
MySQL生产实战优化(利用Index skip scan优化性能提升257倍)
chengang
313次阅读
2025-03-17 10:36:40
一键装库脚本3分钟极速部署,传统耗时砍掉95%!
IT邦德
228次阅读
2025-03-10 07:58:44
MySQL8.0直方图功能简介
Rock Yan
213次阅读
2025-03-21 15:30:53
MySQL 有没有类似 Oracle 的索引监控功能?
JiekeXu
191次阅读
2025-03-19 23:43:22