MyFlash闪回恢复数据
使用限制:
、binlog格式必须为row,且binlog_row_image=full。
、仅支持5.6与5.。
、只能回滚DML(增、删、改)。
、mysqlbinlog版本请保持一致。
1、安装
安装依赖。
yum install glib2 glib2-devel gcc git mysql mysql-devel -y
yum groupinstall "Development tools" "Server Platform Development"
下载myflash源码包。
下载地址:https://github.com/Meituan-Dianping/MyFlash/tree/master
编译安装myflash,此处采用静态编译方式。
cd /data/MyFlash-master
gcc -w -g `pkg-config --cflags glib-2.0` source/binlogParseGlib.c -o /data/flashback /usr/lib64/libglib-2.0.so -lrt
参数解析:
/data/MyFlash/source/binlogParseGlib.c:myflash c源码文件位置
/data/flashback:编译完成myflash的可执行文件位置
/usr/lib64/libglib-2.0.so:glib2.0的lib文件位置
pkg-config --cflags glib-2.0:标明使用的glib版本
2、使用帮助
./flashback --help Usage:
flashback [OPTION...] Help Options:
-?, --help Show help options Application Options:
--databaseNames databaseName to apply. if multiple, seperate by comma(,)
#指定需要回滚的数据库名称。多个数据库名称可以使用","隔开,如果不指定该参数,相当于指定所有数据库 --tableNames tableName to apply. if multiple, seperate by comma(,)
#指定需要回滚的表名。多个表可以用","隔开。如果不指定该参数,相当于指定所有表。 --start-position start position
#指定回滚的开始位置。如不指定,从文件的开始处进行回滚。如指定,请指定正确有效的位置,否则无法回滚。 --stop-position stop position
#指定回滚结束的位置。如不指定,回滚到文件结束位置。如指定,请指定正确有效的位置,否则无法回滚。 --start-datetime start time (format %Y-%m-%d %H:%M:%S)
#指定回滚开始的时间。注意格式为:%Y-%m-%d %H:%M:%S。如不指定,则不限定时间。建议使用指定时间方式。 --stop-datetime stop time (format %Y-%m-%d %H:%M:%S)
#指定回滚结束的时间。注意格式为:%Y-%m-%d %H:%M:%S。如不指定,则不限定时间。建议使用指定时间方式。 --sqlTypes sql type to filter . support INSERT, UPDATE ,DELETE. if multiple, seperate by comma(,)
#指定需要回滚的sql类型。目前支持的过滤类型是INSERT, UPDATE ,DELETE。多个类型可以用","隔开。注意过滤类型要大写。 --maxSplitSize max file size after split, the uint is M
#指定该参数,对文件进行固定尺寸的分割(单位为M),过滤条件有效,但不进行回滚操作。该参数主要用来将大的binlog文件切割,防止单次应用的binlog尺寸过大,对线上造成压力 --binlogFileNames binlog files to process. if multiple, seperate by comma(,)
#指定需要回滚的binlog文件,目前只支持单个文件,后续会增加多个文件支持
--outBinlogFileNameBase output binlog file name base
#指定输出的binlog文件前缀,如不指定,则默认为binlog_output_base.flashback --logLevel log level, available option is debug,warning,error
#仅供开发者使用,默认级别为error级别。在生产环境中不要修改这个级别,否则输出过多 --include-gtids gtids to process
#指定需要回滚的gtid,支持gtid的单个和范围两种形式。 --exclude-gtids gtids to skip
#指定不需要回滚的gtid,用法同include-gtids。
3、使用示例
.回滚整个文件
./flashback --binlogFileNames=haha.
mysqlbinlog binlog_output_base.flashback | mysql -h<host> -u<user> -p
.回滚该文件中的所有insert语句
./flashback --sqlTypes='INSERT' --binlogFileNames=haha.
mysqlbinlog binlog_output_base.flashback | mysql -h<host> -u<user> -p
.回滚大文件
回滚:
./flashback --binlogFileNames=haha.000042 切割大文件:
./flashback --maxSplitSize= --binlogFileNames=binlog_output_base.flashback
应用:
mysqlbinlog binlog_output_base.flashback. | mysql -h<host> -u<user> -p
...
mysqlbinlog binlog_output_base.flashback.<N> | mysql -h<host> -u<user> -p
4、测试示例
、进行回滚,首先回滚二进制日志
./flashback --databaseNames='owms-cd' --sqlTypes='DELETE' --binlogFileNames=/data/mysqldata/master-bin. --start-datetime='2017-12-26 11:20:00' --outBinlogFileNameBase=lcs
生成文件如下:
、导入回滚完成的日志
mysqlbinlog lcs.flashback | mysql
注:切分回滚完成的二进制日志
5、检测表sum。
checksum table test ;
检测test表的sum值
MyFlash闪回恢复数据的更多相关文章
- Orcale-利用闪回恢复数据方法
一.delete误删 方法1:如果表结构没有改变,直接闪回整个表,具体步骤: --首先需要表闪回权限,开启行移动功能 alter table 表名 enable row movement; --执行闪 ...
- binlog2sql闪回恢复数据
用途: .数据快速回滚 .从binlog生成标准sql 使用限制: .必须设置binlog_format=ROW .binlog_row_image=full,该参数默认为FULL .恢复用户拥有的最 ...
- 利用MyFlash闪回丢失数据(续)
last night,i've tested flashback by MyFlash tool,but failed,now let's do some other test with ...
- 利用MyFlash闪回丢失数据
MyFlash is an open source tool released by Meituan-Dianping which can be used to flashback MyS ...
- oracle_利用闪回功能恢复数据
方便起见一般:执行如下即可不用往下看: ① 启用行移动功能 alter table tbl_a enable row movement; ② 闪回表数据到某个时间点 flashback table t ...
- Oracle 闪回 找回数据
使用闪回技术,实现基于磁盘上闪回恢复区的自动备份与还原. 一.恢复表对象 1.创建学生表 create table STUDENT ( idno INTEGER, name VARCHAR2(30), ...
- Oracle 闪回 找回数据的实现方法
Oracle 闪回 找回数据的实现方法 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复.这篇文章主要介绍了Oracle 闪回 找回 ...
- Oracle数据库中闪回恢复的详细分析
Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大 ...
- 闪回恢复区大小不够。报ORA-19809、ORA-19804
问题: 闪回恢复区大小不够,rman默认备份路径报错.RMAN> backup database;Starting backup at 01-DEC-14using target databas ...
随机推荐
- 2018年美国大学生数学建模竞赛(MCM/ICM) F题解题思路
任务一:开发价格点,建立综合定价模型. 其中 a 代表开发价格点系数,代表个人财产评估.K 为 PI 交易系数 以这个进行评估,将个人划分为具有合理相似性的子组: 当 a 等于 0-30 时,子组为: ...
- HTML中的map和area标签
1. 标签介绍: (1)map标签: 该标签是指图片的映射,也就是说一张可以点击的图片的映射: 属性介绍: <1> id: <img>中的 usemap 属性可引用 <m ...
- LintCode——颜色分类
颜色分类:给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红.白.蓝的顺序进行排序. 我们可以使用整数 0,1 和 2 分别代表红,白,蓝. 注意事项: 不能 ...
- Received non-all-whitespace CHARACTERS or CDATA event in nextTag(). ,无法整齐打印验证错误。 解析XML文档出现的问题
在启动keyCloak,想要在standAlone模式下切换数据库,修改standAlone.xml文件时. 在bin/目录下启动standAlone模式出现错误: 10:07:24,799 INFO ...
- gitlab+jenkins持续集成(三)
构建: 需要将jenkins服务器上 jenkins用户的公钥发送给 目标服务器的gs用户,使得在jenkins上能用gs免密登录目标服务器 复制密钥到目标机器上(需要登录到的机器) ssh-co ...
- Beta后续感想/吐槽
感想 磨人的软工实践终于结束了 艰难的度过了一学期,还是写点什么纪念一下吧. 大一大二的时候就听说软工实践是魔鬼般的锻炼,于是当年不知天高地厚的我是很期待的,终于,我大三了. 后来,我长大了. alp ...
- 寒假作业第二篇随笔(A+B)
Github链接:https://github.com/heihuifei/object-oriented A+B Format (20) Calculate a + b and output the ...
- b5
吴晓晖(组长) 过去两天完成了哪些任务 完善推荐算法 展示GitHub当日代码/文档签入记录 接下来的计划 推荐算法 还剩下哪些任务 组员:刘帅珍 过去两天完成了哪些任务: 修改原型,整理背景 明日计 ...
- mvc 页面方法学习-RenderBody方法
教程地址:https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/getting-started/introduction/adding-a-view
- VMware上配置DPDK环境并运行实例程序
1. 在虚拟机VMware上配置环境 VMware安装:http://www.zdfans.com/html/5928.html Ubuntu:https://www.ubuntu.com/downl ...

