一 简介:今天来聊聊如何使用开源MyFlash
二 安装
1 github 下载源码 https://github.com/Meituan-Dianping/MyFlash
2 建议使用阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 更换为阿里源
yum -y install libgnomeui-devel
gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback 编译安装
三 使用
./flashback --binlogFileName=binlog文件 --start-position= --stop-position= --databaseNames='' --tableNames='' --sqlTypes='DELETE|INSERT|UPDATE'
解析文件后会在同名文件夹下生成 binlog_output_base.flashback 文件
四 恢复
mysqlbinlog binlog_output_bash.flashback|mysql -u -p 建议先在测试环境进行恢复,研发进行数据校对,再进行线上恢复
五 总结
1 MyFlash生成的结果是原生binlog格式,所以要用mysqlbinlog应用,如果想可视化,用mysqlbinlog再度解析即可
2 MyFlash是离线解析,速度也很快,非常方面
3 MyFlash能增强恢复精度,能根据操作类型过滤
六 补充
1 经过最新测试 myflash是支持mysql5.7-MGR 架构数据恢复的
2 针对gtid复制模式,需要在应用回滚日志时加上--skip-gtids可以防止报错,恢复成功