阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux 如何用命令查看binlog文件的创建时间

150次阅读
没有评论

共计 1952 个字符,预计需要花费 5 分钟才能阅读完成。

背景

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

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计1952字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中