码迷,mamicode.com
首页 > 其他好文 > 详细

flashback

时间:2018-08-20 11:32:16      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:str   form   tail   std   alt   and   数据库   load   nlog   

Flashback在mysql5.6的应用

 

工具简介

针对row格式的binlog可以解析为回滚操作语句,如delete反向生成insert,update生成反向的update,insert反向生成delete;在线上误操作的时候我们可以快速的将数据恢复到修改前的状态。

安装

1、下载地址

 

http://download.csdn.net/download/sinat_29461437/10126004

 

创建新服务binlogflashback, 并修改权限

mv /opt/mysqlbinlog20160408 /use/bin/binlogflashback

chmod 755 /use/bin/binlogflashback

 

参数说明

 -B, --flashback Flashback data to start_postition or start_datetime.

COM_BINLOG_DUMP or COM_BINLOG_DUMP_GTID commands by

setting the option to either BINLOG-DUMP-NON-GTIDS or BINLOG-DUMP-GTIDS, respectively.

If --read-from-remote-master=BINLOG-DUMP-GTIDS is combined

--start-datetime ##从哪个时间点的binlog开始解析,格式必须为datetime,如‘2016-11-11 11:11:11‘。可选。默认不过滤。
--stop-datetime ##到哪个时间点的binlog停止解析,格式必须为datetime,如‘2016-11-11 11:11:11‘。可选。默认不过滤。

--start-position ##事务开始的position点

--stop-position ##事务结束的position点

 

使用范例

1、数据准备

在数据库中创建如下表

Create Table: CREATE TABLE `tb1` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB;

执行增、删、改动作

insert into tb1 values(1,‘aaa‘),(2,‘aaa‘);

delete from tb1 where id=2;

update tb1 set name=‘bbb‘ where id=1;

 技术分享图片

2、反转

2.1、解析binlog

根据时间点解析binlog

binlogflashback -v --start-datetime=‘2017-4-24 14:14:00‘ --stop-datetime=‘2017-4-24 14:16:08‘ /data/mysqldata/mysql-bin.000001 > /tmp/tmp.sql

 

确定目标语句是否存在该范围内,并记录对应的pos点(at 346)

vim /tmp/tmp.sql

 技术分享图片

 技术分享图片

 技术分享图片

 

2.2、反转

binlogflashback -v -B --start-position=574 --stop-position=1109 /data/mysqldata/mysql-bin.000001 > /tmp/tmp.sql

 技术分享图片

 

第三步

确定好反转sql直接执行,也可以提取需要的sql单独执行。

mysql -uqihang.li -p123 < /tmp/tmp.sql  

执行前

 技术分享图片

执行后

 技术分享图片

 

-- ---------------------------------------------------------------华丽的分界线--------------------------flashback 5.7------------------------------------

flashback 5.7 的文件我稍后会放个链接:

http://download.csdn.net/download/sinat_29461437/10126016

使用方法和上述一直 期间遇到一些问题,分享下

 

binlogbackup -v /data/mysqldata/mysql-bin.000001

 [root@ser2-56 ~]#binlogbackup -v /data/mysqldata/mysql-bin.000001
binlogflashback: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15‘ not found (required by binlogflashback)技术分享图片技术分享图片

 

GLIBCXX_3.4.15是关于C系统基础运行库GLIBC

我们着手解决GLIBCXX的问题,C++库,首先查看错误信息提示中的lib文件的信息。

ll /usr/bin64/libstadc++.so.6

 [root@ser2-56 ~]# ll /usr/lib64/libstdc++.so.6
lrwxrwxrwx 1 root root 19 11月 3 10:49 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13技术分享图片技术分享图片技术分享图片

发现/usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6 -> /usr/lib64/libstdc++.so.6.0.13也就是系统以前有一个6.0.13版本,确实比较旧了,那么我们有新版本么?

 

我们现在本机找下

find / -name libstdc++.so.6*

发现我们有一个/usr/lib64/libstdc++.so.6.0.20的高版本文件(没有可以自行下载,

http://download.csdn.net/detail/sinat_29461437/9826688

 [root@ser2-56 ~]# find / -name libstdc++.so.6*
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.13
/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/impala/lib/libstdc++.so.6
/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/impala/lib/libstdc++.so.6.0.20技术分享图片技术分享图片

cp /opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p0.23/lib/impala/lib/libstdc++.so.6.0.20 /usr/lib64/

ll /usr/lib64/libstdc++.so.6

rm -rf /usr/lib64/libstdc++.so.6

ln -s /usr/lib64/libstdc++.so.6.0.20 /usr/lib64/libstdc++.so.6

 

打印 libstdc++.so.6的输出信息中限定(grep) GLIBC库的信息

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

 技术分享图片技术分享图片

[root@ser2-56 ~]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

 

发现GLIBC的版本已经提高到3.4.20,这已经可以满足我们要求了

binlogbackup -v /data/mysqldata/mysql-bin.000001

 就可以使用了技术分享图片技术分享图片

 

限制

binlog_format=row

只支持insert、update、delete

不支持drop 、truncate、alter等ddl语句

 

flashback

标签:str   form   tail   std   alt   and   数据库   load   nlog   

原文地址:https://www.cnblogs.com/likappe/p/9504316.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!