MySQL合集-闪回恢复工具MyFlash

yumo6667个月前 (05-22)技术文章101


一、简介

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

相关文章

真工程师:20块钱做了张「名片」,可以跑Linux和Python

机器之心报道参与:思源、杜伟、泽南对于一个工程师来说,如何在一张名片上宣告自己的实力?在上面制造一台完整的计算机说不定是个好主意。最近,美国一名嵌入式系统工程师 George Hilliard 的名片...

Firefox 36 beta发布了

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

Flash解禁重返Firefox 后顾之忧还很多

【PConline 资讯】7月20日消息:据外媒报道,因接连被发现重大漏洞而被Mozilla禁用的Flash,经过几天的修复工作后终于得以解禁,重新成为默认的Firefox的默认插件。据了解,Mozi...

SpringMVC流程及源码分析

前言学了一遍SpringMVC以后,想着做一个总结,复习一下。复习写下面的总结的时候才发现,其实自己学得并不彻底、牢固、也没有学全,视频跟书本是要结合起来一起,每一位老师的视频可能提到的东西都不一致,...

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

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