MySQL合集-闪回恢复工具MyFlash

yumo6662个月前 (05-22)技术文章30


一、简介

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。使用该参数可以对文件进行切片

相关文章

Firefox 36 beta发布了

2015-01-22 05:26:00 作者:马荣【中关村在线软件资讯】1月22日消息:Mozilla最近将Firefox 36 Beta放上了FTP服务器,这意味着已经可以下载试用了。Firefox...

网站后端开发源代码

成人网站在推动 Web 发展方面发挥的作用是不可否认的。从克服浏览器视频功能的限制到使用 WebSockets 推送广告(以防止广告拦截器拦截广告),您必须不断想出巧妙的方法,才能让自己处于 Web...

如何快速低成本地搭建有一个属于自己的网站

相信很多小伙伴刚接触互联网访问各种绚丽和功能强大的网站时都会好奇这些网站是如何搭建的,自己也想拥有一个这样的网站空间,其实个人网站的搭建是很简单的下面我给大家讲解下。如果搭建一个网站,首先大家可以先了...

Flash 游戏将消亡,但这个项目挽救了其中 38000 多款

很长一段时间,互联网上充斥着内置 Flash 的游戏和动画。但是,到今年年底,Flash 将会消失,因为几乎所有主要的网络浏览器都将在 2020 年 12 月 31 日取消对 Flash 的支持。不过...

ZLG嵌入式笔记 | rootfs镜像制作其实没那么难

在嵌入式Linux开发中,文件系统的打包和镜像制作是关键步骤。本文介绍了Linux核心板文件系统的打包与镜像制作方法,适合嵌入式开发人员快速上手。 前言致远电子Linux核心板提供的系统固件里,除了镜...