my2sql

my2sql简介

go版MySQL binlog解析工具,通过解析MySQL binlog ,可以生成原始SQL、回滚SQL、去除主键的INSERT SQL等,也可以生成DML统计信息。类似工具有binlog2sql、MyFlash、my2fback等,本工具基于my2fback、binlog_rollback工具二次开发而来。

用途

  • 数据快速回滚(闪回)
  • 主从切换后新master丢数据的修复
  • 从binlog生成标准SQL,带来的衍生功能
  • 生成DML统计信息,可以找到哪些表更新的比较频繁
  • IO高TPS高, 查出哪些表在频繁更新
  • 找出某个时间点数据库是否有大事务或者长事务
  • 主从延迟,分析主库执行的SQL语句
  • 除了支持常规数据类型,对大部分工具不支持的数据类型做了支持,比如json、blob、text、emoji等数据类型sql生成

产品性能对比

binlog2sql当前是业界使用最广泛的MySQL回滚工具,下面对my2sql和binlog2sql做个性能对比。

my2sql

binlog2sql

1.1G binlog生成回滚SQL

1分40秒

65分钟

1.1G binlog生成原始SQL

1分30秒

50分钟

1.1G binlog生成表DML统计信息、以及事务统计信息

40秒

不支持

安装

采用git clone的方式安装

采用下载已经编译好的二进制版本

  • 有编译好的linux版本(CentOS release 7.x) 点击下载Linux版
  • 下载好后,上传至服务器/usr/local/下
  • 授予执行权限chmod +x /usr/local/my2sql

限制

  • 使用回滚/闪回功能时,binlog格式必须为row,且binlog_row_image=full, DML统计以及大事务分析不受影响
  • 只能回滚DML, 不能回滚DDL
  • 支持指定-tl时区来解释binlog中time/datetime字段的内容。开始时间-start-datetime与结束时间-stop-datetime也会使用此指定的时区, 但注意此开始与结束时间针对的是binlog event header中保存的unix timestamp。结果中的额外的datetime时间信息都是binlog event header中的unix timestamp
  • 此工具是伪装成从库拉取binlog,需要连接数据库的用户有SELECT, REPLICATION SLAVE, REPLICATION CLIENT权限
  • MySQL8.0版本需要在配置文件中加入default_authentication_plugin =mysql_native_password,用户密码认证必须是mysql_native_password才能解析

原文链接:https://github.com/liuhr/my2sql/

我来说两句

0 条评论
登录 后参与评论

相关文章

  • my2sql 闪回操作流程

    go版MySQL binlog解析工具,通过解析MySQL binlog ,可以生成原始SQL、回滚SQL、去除主键的INSERT SQL等,也可以生成DML统...

    你要的小米吖
  • 使用my2sql来恢复mysql数据

    使用说明来源原作者:my2sql的GitHub地址:https://github.com/liuhr/my2sql

    wangwei-dba
  • 技术分享 | binlog 实用解析工具 my2sql

    爱可生 MySQL DBA 团队成员,Oracle 10g OCM,MySQL 5.7 OCP,擅长数据库性能问题诊断、事务与锁问题的分析等,负责处理客户 My...

    爱可生开源社区
  • 【DB宝43】MySQL误操作闪回恢复利器之my2sql

    可以用于MySQL误操作闪回的工具包括my2sql、binlog2sql和MyFlash等工具,其中,个人感觉my2sql最好用。

    小麦苗DBA宝典
  • 【DB宝43】MySQL误操作闪回恢复利器之my2sql

    可以用于MySQL误操作闪回的工具包括my2sql、binlog2sql和MyFlash等工具,其中,个人感觉my2sql最好用。

    小麦苗DBA宝典

扫码关注云+社区

领取腾讯云代金券