欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux下查看binlog文件创建时间的命令

程序员文章站 2022-04-09 11:41:19
背景 mysql在26日 16:23:49产生了大量的慢查询,在这段时间内,binlog文件刷新的很快(查看慢日志是mysql dml并发比较多),想知道写完一个binl...

背景

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文件存放根文件目录

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下查看binlog文件创建时间的命令,希望对大家有所帮助