文档结构:
在生产环境中如果遇到误删,改错数据的情况,利用MysqL闪回工具binlog2sql,可以实现数据的快速回滚,从binlog中提取sql,并能生成回滚SQL语句。binlog以event作为单位记录数据库变更的数据信息,闪回就是可以重现这些变化数据信息之前的 *** 作。也就是说,对于insert *** 作,会生成相反的update语句。这块工具只能使用在binlog格式为row模式下,且只支持DML语句不支持DDL语句。
binlog2sql下载地址:
依赖包链接:
https://pan.baidu.com/s/15dDeGufVWOgVrfATGWBzaA 密码:gnz8
setup-tools下载地址:
python2.7下载地址:href="https://www.python.org/downloads/">https://www.python.org/downloads/
实验环境:
数据库版本:
MysqL5.7.20
*** 作系统:red-hat 6.7
python:2.7.15
1、环境准备1、安装python2.71.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
(一句一句粘贴)
建立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
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 -zxvfPyMysqL-0.8.0.tar.gz
cd PyMysqL-0.8.0
python setup.py install
(2)wheel-0.31.0安装
tar -xzvf wheel-0.31.0.tar.gz
cd wheel-0.31.0
python setup.py install
(3)python-MysqL-replication安装
unzip python-MysqL-replication-master.zip
cd python-MysqL-replication-master
python setup.py install
(4)通过pip安装相应的依赖包
tar -xzvf pip-10.0.1.tar.gz
cd pip-10.0.1
python setup.py install
解压binlog2sql软件:
unzip binlog2sql-master.zip
cd/soft/binlog2sql-master
pip install -rrequirements.txt(前面包都安装成功后,这句就可以不用了)
2、恢复演练1、查看参数使用
cd/soft/binlog2sql-master/binlog2sql/
pythonbinlog2sql.py --help
值得注意的就是--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行)
delete from a1limit 2000;(drop table 是不能够闪回的)
select count(*)from a1;
a) test库创建闪回用户
grantselect,replication slave,replication clIEnt on *.* to 'flash'@'%' IDentifIEd by'flash';
查看当前binlog
当前binlog文件是MysqL-binlog.000008,预估一下刚刚 *** 作时间(由于测试机上时间不准,未带时间)。
cd/soft/binlog2sql-master/binlog2sql/
pythonbinlog2sql.py -h127.0.0.1 -P3307 -uflash -pflash -dtest -ta1--start-file='MysqL-binlog.000008'
查看生成的恢复语句。
已下仅为一部分
可以看得sql位置是在259到10446之间,进行过滤,生成回滚sql。
pythonbinlog2sql.py -h127.0.0.1 -P3307 -uflash -pflash -dtest -ta1--start-file='MysqL-binlog.000008' --start-position=259 --stop-position=10446-B >> flashback.sql
最后应用回滚SQL语句:
source/soft/binlog2sql-master/binlog2sql/flashback.sql
测试成功!
总结以上是内存溢出为你收集整理的MYSQL工具之binlog2sql闪回 *** 作全部内容,希望文章能够帮你解决MYSQL工具之binlog2sql闪回 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)