桓楠百科网

编程知识、经典语录与百科知识分享平台

MySQL合集-闪回恢复工具MyFlash


一、简介

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

二、详细说明

安装

1.How to build

该工具推荐用户在下载源码之后,进行动态编译链接安装

动态编译链接

gcc -w `pkg-config --cflags --libs glib-2.0` source/binlogParseGlib.c -o binary/flashback

然而用户不想每次去重新编译,可以选择使用静态链接,但是该方法需要知道glib库的版本和位置,因此对于每台机器略有不同,请谨慎使用

静态编译链接

为了保证在一台机器上编译后,可以在其它机器上使用,需要满足以下两个条件

a) 将glib做成静态链接

b)在编译的那台机器的glibc版本(查看方法为ldd --version)要小于等于要运行该软件的那台机器glibc版本 因此需要你在一台glibc版本较低的机器上运行如下命令即可。

gcc -w -g `pkg-config --cflags glib-2.0` source/binlogParseGlib.c -o binary/flashback /usr/lib64/libglib-2.0.a -lrt

  1. 使用
  2. 测试用例

三、限制

  1. binlog格式必须为row,且binlog_row_image=full
  2. 仅支持5.6与5.7
  3. 只能回滚DML(增、删、改)

四、FAQ

  1. 实现的原理是什么?
  • 答:参考文章http://url.cn/5yVTfLY
  1. 支持gtid吗?
  • 答:支持。请参考 使用
  1. 在开启gtid的MySQL server上,应用flashback报错,错误为:ERROR 1782 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to ANONYMOUS when @@GLOBAL.GTID_MODE = ON. ?
  • 答:在导入时加入--skip-gtids mysqlbinlog --skip-gtids | mysql -uxxx -pxxx
  1. 如果回滚后的binlog日志尺寸超过20M,在导入时,很耗时。如何处理?
  • 答:参考 使用 ,搜索maxSplitSize。使用该参数可以对文件进行切片
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言