Flash基础入门之MyFlash闪回恢复数据
小标 2019-01-24 来源 : 阅读 1433 评论 0

摘要:本文主要向大家介绍了Flash基础入门之MyFlash闪回恢复数据,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

本文主要向大家介绍了Flash基础入门之MyFlash闪回恢复数据,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

使用限制:

1、binlog格式必须为row,且binlog_row_image=full。
2、仅支持5.6与5.7。
3、只能回滚DML(增、删、改)。
4、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、使用示例

1.回滚整个文件
./flashback --binlogFileNames=haha.000041
mysqlbinlog binlog_output_base.flashback | mysql -h -u -p
2.回滚该文件中的所有insert语句
./flashback  --sqlTypes=‘INSERT‘ --binlogFileNames=haha.000041
mysqlbinlog binlog_output_base.flashback | mysql -h -u -p
3.回滚大文件
回滚:
./flashback --binlogFileNames=haha.000042切割大文件:
./flashback --maxSplitSize=1 --binlogFileNames=binlog_output_base.flashback
应用:
mysqlbinlog binlog_output_base.flashback.000001 | mysql -h -u -p
...
mysqlbinlog binlog_output_base.flashback. | mysql -h -u -p

4、测试示例

1、进行回滚,首先回滚二进制日志
./flashback --databaseNames=‘owms-cd‘ --sqlTypes=‘DELETE‘ --binlogFileNames=/data/mysqldata/master-bin.000007 --start-datetime=‘2017-12-26 11:20:00‘ --outBinlogFileNameBase=lcs
生成文件如下: 
2、导入回滚完成的日志
mysqlbinlog lcs.flashback | mysql
注:切分回滚完成的二进制日志 



5、检测表sum。

checksum table test ;
检测test表的sum值

以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程