Linux 如何用命令查看binlog文件的创建时间
背景
MySQL在26日 16:23:49产生了大量的慢查询,在这段时间内,binlog文件刷新的很快(查看慢日志是mysql DML并发比较多),想知道写完一个binlog文件究竟花了几分钟时间?

分析
- 三个binlog文件的最后修改间隔时间分别是2 分钟和1 分钟
- 同一个事务只能写同一个binlog文件
- mysql-bin.016126文件的最后修改时间16:22不一定是mysql-bin.016127 文件创建的时间(存在大事务的情况下,大事务还在写上一个binlog文件,新的事务已经在写新创建的binlog文件了)
- 使用mysqlbinlog 可以读取binlog文件中的event,知道文件的创建时间
- 在Linux下,是否有命令可以查出文件的创建时间了?
方法
1、使用stat命令
stat mysql-bin.016126
File: ‘mysql-bin.016126’
Size: 262146609 Blocks: 512016 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 135529302 Links: 1
Access: (0640/-rw-r-----) Uid: ( 5701/actiontech-mysql) Gid: ( 5701/actiontech-mysql)
Access: 2019-04-28 14:41:42.967043003 +0800
Modify: 2019-04-26 16:24:21.823932020 +0800
Change: 2019-04-26 16:24:21.823932020 +0800
1、访问时间,读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间
2、修改时间,修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间
3、状态改动时间。是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新
如果文件创建后就没有修改过,修改时间=创建时间;如果文件创建后,状态就没有改变过,那么状态改变时间=创建时间;如果文件创建后,没有被读取过,那么访问时间=创建时间。对使用过的文件,这些基本不太可能
2、使用debugfs
获取binlog文件存放根文件目录
grep 'datas' /etc/fstab
/dev/mapper/centos-datas /datas ext4 defaults 1 2
得到binlog文件inode号
ls -i mysql-bin.016127
135529232 mysql-bin.016127
得到文件创建时间
debugfs -R 'stat <135529232>' /dev/mapper/centos-datas
debugfs 1.42.9 (28-Dec-2013)
Inode: 135529232 Type: regular Mode: 0640 Flags: 0x80000
Generation: 2396969921 Version: 0x00000000:00000001
User: 5701 Group: 5701 Size: 262147164
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 512016
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5cc2c082:47dcd9bc -- Fri Apr 26 16:25:38 2019
atime: 0x5cc55c49:2929fd18 -- Sun Apr 28 15:54:49 2019
mtime: 0x5cc2c082:47dcd9bc -- Fri Apr 26 16:25:38 2019
crtime: 0x5cc2c035:c470d1d0 -- Fri Apr 26 16:24:21 2019
Size of extra inode fields: 28
EXTENTS:
- crtime即为文件创建时间
- crtime和mtime文件最后修改时间差1分17秒
- MySQL写完一个binlog文件用时1分多钟
注意
xfs文件系统不支持用debugfs来查看文件的创建时间
grep root /etc/fstab
/dev/mapper/centos-root / xfs defaults 1 1
ls -i /test1
357556 /test1
debugfs -R 'stat <357556>' /dev/mapper/centos-root
debugfs 1.42.9 (28-Dec-2013)
/dev/mapper/centos-root: Bad magic number in super-block while opening filesystem
stat: Filesystem not open
参考
Linux文件创建时间
Linux 如何用命令查看binlog文件的创建时间的更多相关文章
- Linux 如何通过命令查看一个文件的某几行(中间几行或最后几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)
linux 如何显示一个文件的某几行(中间几行) [一]从第3000行开始,显示1000行.即显示3000~3999行 cat filename | tail -n +3000 | head -n 1 ...
- 通过 mysqlbinlog 和 grep 命令定位binlog文件中指定操作
1.binlog日志基本知识 MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗 ...
- Mysql: mysqlbinlog命令查看日志文件
想查看mysql的binlog文件,但是裸的binlog文件是无法直视的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysq ...
- Linux下jmap命令查看内存使用
Linux下jmap命令查看内存使用 jmap -heap 1234(1234为进程号) jmap是JDK自带的一个工具,非常小巧方便,其支持参数如下: -heap 打印heap空间的概要 ...
- [转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小
linux下使用 du查看某个文件或目录占用磁盘空间的大小 du -ah --max-depth= 去年用过一次 后来忘记了.. 命令这个东西 熟能生巧.. https://www.cnblogs.c ...
- Linux使用jstat命令查看jvm的GC情况
Linux使用jstat命令查看jvm的GC情况 http://www.open-open.com/lib/view/open1390916852007.html http://www.aiuxian ...
- Linux使用netstat命令查看并发连接数[转]
转自:http://www.cnblogs.com/wayne173/p/5652043.html Linux使用netstat命令查看并发连接数 我们的网站部署在linux的服务器上,特别是we ...
- Linux使用jstat命令查看jvm的GC情况(转)
B. jstack jstack主要用来查看某个Java进程内的线程堆栈信息.语法格式如下: 1 jstack [option] pid 2 jstack [option] executable co ...
随机推荐
- python之路—从入门到放弃
python基础部分 函数 初识函数 函数进阶 装饰器函数 迭代器和生成器 内置函数和匿名函数 递归函数 常用模块 常用模块 模块和包 面向对象 初识面向对象 面向对象进阶 网络编程 网络编程 并发编 ...
- appium--解决中文输入不了的问题
配置 from appium import webdriver desired_caps={} desired_caps['platformName']='Android' #模拟器 desired_ ...
- ASP.NET Core 中的 依赖注入介绍
ASP.NET Core 依赖注入 HomeController public class HomeController : Controller { private IStudentReposito ...
- 复杂模拟 | 1095 模拟N个学生有K个志愿填M个学校
妈的智障 #include <stdio.h> #include <memory.h> #include <math.h> #include <string& ...
- 8.9 NOIP模拟测试15 建设城市(city)+轰炸行动(bomb)+石头剪刀布(rps)
鉴于T3的惨烈程度,我决定先来颓篇题解. T1 建设城市(city) 挡板法+容斥 m个建设队分成n组,每组必须有一个,先不考虑上限,共有 C(m-1,n-1)种方案. 有i个组是超过k个的,容斥掉 ...
- Web协议详解与抓包实战:HTTP1协议-如何传递 IP 地址?(6)
一.HTTP消息在服务器端的路由 Host 头部 规范与实现间是有差距的 二.代理服务器转发消息时的相关头部 1.Host 头部与消息的路由 2.客户端与源服务器间存在多个代理 三.如何传递 IP 地 ...
- nginx ubantu 安装步骤
Ubuntu14.04默认安装的是Nginx 1.4.6 如果已经安装,请先卸载sudo apt-get remove nginx最新的稳定版Nginx 1.6.0在ubuntuupdates ppa ...
- 热情组——项目冲刺 Day7
项目相关 作业相关 具体描述 班级 班级链接 作业要求 链接地址 团队名称 热情组 作业目标 实现软件制作,以及在福大的传播 Github链接 链接地址 SCRUM部分: 成员昵称 昨日目标 开始时间 ...
- [******] java多线程连续打印abc
题目描述 建立三个线程A.B.C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印. 5种方法 使 ...
- 分布式RPC框架实现
现在大部分的互联网公司都会采用微服务架构,但具体实现微服务架构的方式有所不同,主流上分为两种,一种是基于Http协议的远程调用,另外一种是基于RPC方式的调用.两种方式都有自己的代表框架,前者是著名的 ...