当前位置:   article > 正文

binlog分析工具_binlog解析工具

binlog解析工具

使用场景

  1. 排查问题获取一段时间内的binlog,颗粒度 表级
  2. 数据闪回操作
  3. dml操作信息统计分析

为什么需要使用第三方工具,原生mysqlbinlog工具不能吗?

  • 原生mysqlbinlog不支持获取表级别binlog
  • 不支持生成回滚语句
  • 获取的binlog可读性差,不利于分析排查问题

my2sql

github:https://github.com/liuhr/my2sql

go版MySQL binlog解析工具,通过解析MySQL binlog ,可以生成:

  • 原始SQL
  • 回滚SQL
  • 去除主键的INSERT SQL等等
  • 从binlog生成标准SQL
  • 也可以生成DML统计信息

总结:用来sql闪回和binlog分析

对比

相对于binlog2sql,速度优势明显

性能对比

img

命令参数

忽略,参考github

基础功能验证

根据时间点解析出标准SQL

#伪装成从库解析binlog
./my2sql  -user root -password xxxx -host 127.0.0.1   -port 3306 -mode repl -work-type 2sql  -start-file mysql-bin.011259  -start-datetime "2020-07-16 10:20:00" -stop-datetime "2020-07-16 11:00:00" -output-dir ./tmpdir
#直接读取binlog文件解析
./my2sql  -user root -password xxxx -host 127.0.0.1   -port 3306 -mode file -local-binlog-file ./mysql-bin.011259  -work-type 2sql  -start-file mysql-bin.011259  -start-datetime "2020-07-16 10:20:00" -stop-datetime "2020-07-16 11:00:00" -output-dir ./tmpdir
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

解析出回滚SQL

#伪装成从库解析binlog
./my2sql  -user root -password xxxx -host 127.0.0.1   -port 3306 -mode repl -work-type rollback  -start-file mysql-bin.011259  -start-datetime "2020-07-16 10:20:00" -stop-datetime "2020-07-16 11:00:00" -output-dir ./tmpdir
#直接读取binlog文件解析
./my2sql  -user root -password xxxx -host 127.0.0.1   -port 3306  -mode file -local-binlog-file ./mysql-bin.011259 -work-type rollback  -start-file mysql-bin.011259  -start-datetime "2020-07-16 10:20:00" -stop-datetime "2020-07-16 11:00:00" -output-dir ./tmpdir
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

统计时间范围各个表的DML操作数量

统计一个事务大于500条、时间大于300秒的事务

#伪装成从库解析binlog
./my2sql  -user root -password xxxx -host 127.0.0.1   -port 3306  -mode repl -work-type stats  -start-file mysql-bin.011259  -start-datetime "2020-07-16 10:20:00" -stop-datetime "2020-07-16 11:00:00"  -big-trx-row-limit 500 -long-trx-seconds 300   -output-dir ./tmpdir
#直接读取binlog文件解析
./my2sql  -user root -password xxxx -host 127.0.0.1   -port 3306 -mode file -local-binlog-file ./mysql-bin.011259   -work-type stats  -start-file mysql-bin.011259  -start-datetime "2020-07-16 10:20:00" -stop-datetime "2020-07-16 11:00:00"  -big-trx-row-limit 500 -long-trx-seconds 300   -output-dir ./tmpdir
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

问题

  1. 分析dml命令计算方式存在问题,不准确
  2. 给出的编译包存在问题,需要修改。

二进制包

修复问题重新编译

mac-arm

推荐阅读
相关标签