MyFlash是美团开源的一个回滚DML操作的工具。该工具通过解析v4版本的binlog,完成回滚操作。
详细参考:https://github.com/Meituan-Dianping/MyFlash
研发同学误删数据后,使用该工具非常顺畅地恢复了误删数据,记录如下:
代码语言:shell复制#下载安装
git clone https://github.com/Meituan-Dianping/MyFlash.git
cd MyFlash/
yum install glib2*
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback
cd binary/
./flashback --help
#查找对应的binlog
show master status;flush logs
#生成回滚文件
time ./flashback --tableNames=xxx --sqlTypes=DELETE --binlogFileNames=/data/dbatemp/rsyncd/mysql-bin.000428
#查看生成文件内容
mysqlbinlog --base64-output=DECODE-ROWS -vv binlog_output_base.flashback | more
#将生成文件加载到库中
mysqlbinlog binlog_output_base.flashback | mysql --defaults-file=/data/mysql_3563/my.cnf test