当前位置:   article > 正文

binlog2mysql_MYSQL工具之binlog2sql闪回操作

pymysqlreplication binlog2sql

文档结构:

9448bf6dc87af1fb9250982e491d44a5.png

在生产环境中如果遇到误删,改错数据的情况,利用mysql闪回工具binlog2sql,可以实现数据的快速回滚,从binlog中提取SQL,并能生成回滚SQL语句。Binlog以event作为单位记录数据库变更的数据信息,闪回就是可以重现这些变化数据信息之前的操作。也就是说,对于insert操作,会生成相反的update语句。这块工具只能使用在binlog格式为row模式下,且只支持DML语句不支持DDL语句。

依赖包链接:

https://pan.baidu.com/s/15dDeGufVWOgVrfATGWBzaA 密码:gnz8

setup-tools下载地址:

实验环境:

数据库版本:

mysql5.7.20

操作系统:red-hat 6.7

python:2.7.15

1、环境准备

1、安装python2.7

1.1首先安装python2.7(6.x默认是安装2.6)

安装参考:http://www.cnblogs.com/balaamwe/p/3480430.html

[root@mysql5 binlog2sql-master]# rpm -qa|grep make

make-3.81-20.el6.x86_64

automake-1.11.1-4.el6.noarch

cmake-2.8.12.2-4.el6.x86_64

如果没有安装make工具

yum -y install gcc automake autoconf libtool make

查看是否安装zlib库

rpm -qa|grep zlib

zlib-1.2.3-29.el6.x86_64

zlib-devel-1.2.3-29.el6.x86_64

安装zlib

yum install zlib-devel

检查是否安装ssl 库

[root@mysql5 binlog2sql-master]# rpm -qa|grep openssl

openssl-1.0.1e-42.el6.x86_64

openssl-devel-1.0.1e-42.el6.x86_64

安装openssl

yum install openssl*

安装bzip2依赖库

yum install -y bzip2*

2. 编译安装python2.7.15

cp /soft/Python-2.7.15.tgz /usr/src/

cd /usr/src/

tar -zxvf Python-2.7.15.tgz

vi /usr/src/Python-2.7.15/Modules/Setup.dist

找到

#SSL=/usr/local/ssl

#_ssl _ssl.c \

#       -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \

#       -L$(SSL)/lib -lssl -lcrypto

......

#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

把注释去掉

编译

cd /usr/src/Python-2.7.15

./configure

--prefix=/usr/local/python2.7

make all

make install

make clean

make distclean

(一句一句粘贴)

1fa348376da9f316369f37dd33407130.png

建立python2.7 软链

mv /usr/bin/python

/usr/bin/python.bak

ln -s

/usr/local/python2.7/bin/python2.7 /usr/bin/python2.7

ln -s

/usr/bin/python2.7 /usr/bin/python

9cc4edd5354662663198b64a4569e103.png

2、安装setup-tools

chmod 775 setuptools-0.6c11-py2.7.egg

sh setuptools-0.6c11-py2.7.egg

3、安装依赖包

(1)PyMySQL-0.8.0安装

tar -zxvf

PyMySQL-0.8.0.tar.gz

cd PyMySQL-0.8.0

python setup.py install

5540cc1cfd0813a50677627b30588598.png

(2)wheel-0.31.0安装

tar -xzvf wheel-0.31.0.tar.gz

cd wheel-0.31.0

python setup.py install

71d1bcdadadd08a472b630fcea486de7.png

(3)python-mysql-replication安装

unzip python-mysql-replication-master.zip

cd python-mysql-replication-master

python setup.py install

8546bf200662b3822d9f4a9591c6c867.png

(4)通过pip安装相应的依赖包

tar -xzvf pip-10.0.1.tar.gz

cd pip-10.0.1

python setup.py install

f38df75fed67f279a6f547e669ed64ec.png

解压binlog2sql软件:

unzip binlog2sql-master.zip

cd

/soft/binlog2sql-master

pip install -r

requirements.txt(前面包都安装成功后,这句就可以不用了)

dfb4e01101c1722e0054dda3826c033a.png

2、恢复演练

1、查看参数使用

cd

/soft/binlog2sql-master/binlog2sql/

python

binlog2sql.py --help

e281d09a0782d9033ff03e1904f73aa9.png

值得注意的就是--start-datetime,--stop-datetime格式为datetime即%Y-%m-%d %H:%M:%S。

2、闪回要求

1、mysql 服务是开启,离线无法进行binlog。

2、binlog_format 必须是ROW格式。

3、DDL语句无法做到闪回,只能解析DML语句。

3、DML语句闪回测试

删除test库下a1表的前2000行(共10000行)

6121779129c81d41a918b8e03c0ab244.png

delete from a1

limit 2000;(drop table 是不能够闪回的)

select count(*)

from a1;

816a7cfd23a1522529aae776a6cc1e4d.png

a)

test库创建闪回用户

grant

select,replication slave,replication client on *.* to 'flash'@'%' identified by

'flash';

771ea3afdd553e0e03485564745c0a7a.png

查看当前binlog

45a097f53727bc032a76e5c2005fbc82.png

当前binlog文件是mysql-binlog.000008,预估一下刚刚操作时间(由于测试机上时间不准,未带时间)。

cd

/soft/binlog2sql-master/binlog2sql/

python

binlog2sql.py -h127.0.0.1 -P3307 -uflash -pflash -dtest -ta1

--start-file='mysql-binlog.000008'

查看生成的恢复语句。

已下仅为一部分

744b5a9ab95205f4366cc3befdcff9ad.png

可以看得SQL位置是在259到10446之间,进行过滤,生成回滚SQL。

python

binlog2sql.py -h127.0.0.1 -P3307 -uflash -pflash -dtest -ta1

--start-file='mysql-binlog.000008' --start-position=259 --stop-position=10446

-B >> flashback.sql

4e6a6c9ff27db130c93bbd3f25fd3548.png

最后应用回滚SQL语句:

source

/soft/binlog2sql-master/binlog2sql/flashback.sql

033f0b4ae043fb4a6350aa3771269e5c.png

f3b70cabd07cc347aa99d39e9161d58e.png

测试成功!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/955254
推荐阅读
相关标签
  

闽ICP备14008679号