千家信息网

MyFlash 回滚mysql binlog

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,简介:MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。安装:
千家信息网最后更新 2025年11月11日MyFlash 回滚mysql binlog

简介:MyFlash是由美团点评公司技术工程部开发维护的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。相对已有的回滚工具,其增加了更多的过滤选项,让回滚更加容易。

安装:
git clone https://github.com/Meituan-Dianping/MyFlash.git
cd MyFlash
gcc -w pkg-config --cflags --libs glib-2.0 source/binlogParseGlib.c -o binary/flashback
cd binary
./flashback --help --查看帮助

使用:
下面的这些参数是可以任意组合的。

* 1.databaseNames

指定需要回滚的数据库名。多个数据库可以用","隔开。如果不指定该参数,相当于指定了所有数据库。

  • 2.tableNames
    指定需要回滚的表名。多个表可以用","隔开。如果不指定该参数,相当于指定了所有表。
  • 3.start-position
    指定回滚开始的位置。如不指定,从文件的开始处回滚。请指定正确的有效的位置,否则无法回滚
  • 4.stop-position
    指定回滚结束的位置。如不指定,回滚到文件结尾。请指定正确的有效的位置,否则无法回滚
  • 5.start-datetime
    指定回滚的开始时间。注意格式必须是 %Y-%m-%d %H:%M:%S。 如不指定,则不限定时间
  • 6.stop-datetime
    指定回滚的结束时间。注意格式必须是 %Y-%m-%d %H:%M:%S。 如不指定,则不限定时间
  • 7.sqlTypes
    指定需要回滚的sql类型。目前支持的过滤类型是INSERT, UPDATE ,DELETE。多个类型可以用","隔开。
  • 8.maxSplitSize
    一旦指定该参数,对文件进行固定尺寸的分割(单位为M),过滤条件有效,但不进行回滚操作。该参数主要用来将大的binlog文件切割,防止单次应用的binlog尺寸过大,对线上造成压力
  • 9.binlogFileNames
    指定需要回滚的binlog文件,目前只支持单个文件,后续会增加多个文件支持
  • 10.outBinlogFileNameBase
    指定输出的binlog文件前缀,如不指定,则默认为binlog_output_base.flashback
  • 11.logLevel
    仅供开发者使用,默认级别为error级别。在生产环境中不要修改这个级别,否则输出过多
  • 12.include-gtids
    指定需要回滚的gtid,支持gtid的单个和范围两种形式。
  • 13.exclude-gtids
    指定不需要回滚的gtid,用法同include-gtids

测试:
/root/test/MyFlash/binary/flashback --binlogFileNames=/mysqllog/mysql-bin.000011 --start-datetime="2018-01-04 13:50:00" --stop-datetime="2018-01-04 14:35:00" --databaseNames=test --tableNames=test_tb --sqlTypes='UPDATE','DELETE' --outBinlogFileNameBase=test_tb
mysqlbinlog --no-defaults --base64-output=decode-rows -vv binlog_output_base.flashback --查看回滚sql
mysqlbinlog --no-defaults binlog_output_base.flashback |mysql -uroot -pyourpass --执行恢复
可以在.bash_profile增加
alias flashback="/root/test/MyFlash/binary/flashback"
以后即可这样使用
flashback --binlogFileNames=/mysqllog/mysql-bin.000011 --start-datetime="2018-01-04 13:50:00" --stop-datetime="2018-01-04 14:35:00" --databaseNames=test --tableNames=test_tb --sqlTypes='UPDATE','DELETE' --outBinlogFileNameBase=test_tb

文件 参数 位置 多个 时间 支持 有效 工具 数据 数据库 类型 级别 单个 尺寸 格式 开发 输出 公司 前缀 单位 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术的别称 湖南智长远软件开发有限公司官网 周村计划管理软件开发公司 软件开发人员配比 中山手机软件开发要多少钱 怎么对sql数据库的表复制 汕尾市轻钢设备生产软件开发 ftp服务器什么版本好 互动网络技术 linux服务器开端口 网络安全法考了实用类文本 山东极点软件开发有限公司 上海信息软件开发售后服务 面对对象数据库技术 当前主流的网络技术 管家婆云服务器续费 崇明区网络营销软件开发信息推荐 无线网络安全详细分析 国家网络安全学院培训中心 公安局哪个部门管理数据库 芯片与网络安全 数据库如何修改一列值 天津比较不错的软件开发公司 网络安全事故指的是 一个软件开发成熟需要多久 ug编辑加工数据库中文乱码 雄迈录像机远程服务器地址 五十台无盘服务器配置 中国警察网络安全知识大会 如何用数据库筛选mirna
0