• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
喝多的板砖剂 显示全部楼层 发表于 2021-10-26 12:48:07 |阅读模式 打印 上一主题 下一主题
目次


  • 配景
  • 分析
  • 方法

配景

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下令
  1. stat mysql-bin.016126
复制代码
  1. File: ‘mysql-bin.016126'
  2. Size: 262146609 Blocks: 512016 IO Block: 4096 regular file
  3.  Device: fd02h/64770d Inode: 135529302 Links: 1
  4.  Access: (0640/-rw-r-----) Uid: ( 5701/actiontech-mysql) Gid: ( 5701/actiontech-mysql)
  5. Access: 2019-04-28 14:41:42.967043003 +0800
  6. Modify: 2019-04-26 16:24:21.823932020 +0800
  7. 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. grep 'datas' /etc/fstab
  2. /dev/mapper/centos-datas /datas ext4 defaults 1 2
复制代码
得到binlog文件inode号
  1. ls -i mysql-bin.016127
  2. 135529232 mysql-bin.016127
复制代码
得到文件创建时间
  1. debugfs -R 'stat <135529232>' /dev/mapper/centos-datas
  2.  debugfs 1.42.9 (28-Dec-2013)
  3.  Inode: 135529232 Type: regular Mode: 0640 Flags: 0x80000
  4.  Generation: 2396969921 Version: 0x00000000:00000001
  5.  User: 5701 Group: 5701 Size: 262147164
  6.  File ACL: 0 Directory ACL: 0
  7.  Links: 1 Blockcount: 512016
  8.  Fragment: Address: 0 Number: 0 Size: 0
  9. ctime: 0x5cc2c082:47dcd9bc -- Fri Apr 26 16:25:38 2019
  10. atime: 0x5cc55c49:2929fd18 -- Sun Apr 28 15:54:49 2019
  11. mtime: 0x5cc2c082:47dcd9bc -- Fri Apr 26 16:25:38 2019
  12. crtime: 0x5cc2c035:c470d1d0 -- Fri Apr 26 16:24:21 2019
  13.  Size of extra inode fields: 28
  14.  EXTENTS:
复制代码
•crtime即为文件创建时间
•crtime和mtime文件最后修改时间差1分17秒
•MySQL写完一个binlog文件用时1分多钟
注意
xfs文件系统不支持用debugfs来查看文件的创建时间
  1. grep root /etc/fstab
  2. /dev/mapper/centos-root / xfs defaults 1 1
  3. ls -i /test1
  4. 357556 /test1
  5. debugfs -R 'stat <357556>' /dev/mapper/centos-root
  6. debugfs 1.42.9 (28-Dec-2013)
  7. /dev/mapper/centos-root: Bad magic number in super-block while opening filesystem
  8. stat: Filesystem not open
复制代码
总结
以上所述是小编给大家介绍的Linux下查看binlog文件创建时间的下令,希望对大家有所资助,如果大家有任何疑问请给我留言,小编会实时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你以为本文对你有资助,接待转载,烦请注明出处,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作