小知识:Linux下查看binlog文件创建时间的命令

背景

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

%小知识:Linux下查看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文件存放根文件目录

?
1
2
grep datas /etc/fstab
/dev/mapper/centos-datas /datas ext4 defaults 1 2

得到binlog文件inode号

?
1
2
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来查看文件的创建时间

?
1
2
3
4
5
6
7
8
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下查看binlog文件创建时间的命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://www.cnblogs.com/YangJiaXin/archive/2019/05/13/10859355.html

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:linux用户组以及权限总结

2023-3-16 7:44:53

建站知识

小知识:详解Linux如何将一个文件夹的所有内容授权给某一个用户?

2023-3-16 8:01:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索