• 进入"运维那点事"后,希望您第一件事就是阅读“关于”栏目,仔细阅读“关于Ctrl+c问题”,不希望误会!

MySQL误操作回滚工具概览

MySQL Tools 彭东稳 7年前 (2017-10-19) 33132次浏览 已收录 3个评论

目前针对MySQL误操作回滚,在市场上已经有很多工具可够选择了。大致实现思路都是根据ROW格式binlog进行回滚,基本都是支持DML操作。大致相关工具与文章下面都列出来了。

[1] 彭立勋,MySQL下实现闪回的设计思路

[2] Lixun Peng, Provide the flashback feature by binlog

[3] 王广友,mysqlbinlog flashback 5.6完全使用手册与原理

[4] 姜承尧, 拿走不谢,Flashback for MySQL 5.7

[5] 林晓斌, MySQL闪回方案讨论及实现

[6] xiaobin lin, flashback from binlog for MySQL

[7] mariadb.com, AliSQL and some features that have made it into MariaDB Server

[8] danfengcao, binlog2sql: Parse MySQL binlog to SQL you want

[9] 美团点评,MyFlash——美团点评的开源MySQL闪回工具

下面主要简单介绍两款,一个是Python写的binlog2sql,一个是C写的MyFlash。

一、binlog2sql

binlog2sql工具可以从MySQL binlog解析出你要的SQL,根据不同选项,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。由于是Python开发,安装使用都很简单,并且代码改造也没那么复杂。

如,解析出指定库指定表的操作语句。

除了这个简单应用外,也支持特定SQL类型(如DDL、DML;DML也可以分INSERT、UPDATE、DELETE等)、根据时间、Position过滤等。

如果想对其生成对应的回滚语句,加一个rollback参数即可。

更多详细内容可以看官方文档,总体来说还是很好用的,但也是有不少限制的。

  • MySQL Server必须开启,离线模式下不能解析。它主要依靠模拟MySQL Slave读取binlog解析。
  • 参数 binlog_row_image 必须为FULL,暂不支持MINIMAL。
  • 一次只能选择一个binlog文件。
  • 速度慢,对比其他工具。

所以就有了下面介绍的这款MyFlash,美团开发的。

二、MyFlash

看这篇文章“MyFlash——美团点评的开源MySQL闪回工具”,总体来说功能上比binlog2sql更丰富一点,binlog2sql支持的功能它都有。简单列一下对比binlog2sql它更有优势的地方:

  • 支持本地解析,不支持远程解析(刚好跟binlog2sql相反)。
  • 支持GTID模式。
  • 支持多文件处理(暂时还不支持,官方说后面支持,现在时间2018.04.20)。
  • 最大的亮点就是比binlog2sql快很多,下面是根据官方给出的100万数据下的测试结果。
binlog2sql mysqlbinlog MyFlash
581.319s 6.217s 2.774s

使用方式也很简单,具体参考MyFlash文档吧。最好两款工具都可以尝试使用对比一下,根据需求选择对应的工具。

最后就是,平时没事多使用使用,准备好命令,相信总有一天你会用上的。千万别等真出问题了,再来找工具,只会增加你的数据恢复时间。


如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。
喜欢 (2)
[资助本站您就扫码 谢谢]
分享 (0)

您必须 登录 才能发表评论!

(3)个小伙伴在吐槽