MySQL工具之binlog2sql閃回操作

lhrbest發表於2019-07-23


MySQL工具之binlog2sql閃回操作


原文:  https://www.cnblogs.com/hmwh/p/9140416.html


文件結構:

 

在生產環境中如果遇到誤刪,改錯資料的情況,利用mysql閃回工具binlog2sql,可以實現資料的快速回滾,從binlog中提取SQL,並能生成回滾SQL語句。Binlog以event作為單位記錄資料庫變更的資料資訊,閃回就是可以重現這些變化資料資訊之前的操作。也就是說,對於insert操作,會生成相反的update語句。這塊工具只能使用在binlog格式為row模式下,且只支援DML語句不支援DDL語句。

binlog2sql下載地址: https://github.com/danfengcao/binlog2sql

依賴包連結:

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

setup-tools下載地址:

https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg

python2.7下載地址: https://www.python.org/downloads/

 實驗環境:

資料庫版本:

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

 

(一句一句貼上)

 

 

建立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 -zxvf PyMySQL-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 -r requirements.txt(前面包都安裝成功後,這句就可以不用了)

 

 

2、恢復演練

1、檢視引數使用

cd /soft/binlog2sql-master/binlog2sql/

python binlog2sql.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 a1 limit 2000;(drop table 是不能夠閃回的)

select count(*) from a1;

 

 

a)     test庫建立閃回使用者

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

 

 

檢視當前binlog

 

 

當前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'

檢視生成的恢復語句。

 

已下僅為一部分

 

 

可以看得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

 

 

最後應用回滾SQL語句:

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

 

測試成功!




About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文CSDN地址: https://blog.csdn.net/lihuarongaini

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

........................................................................................................................

● QQ群號: 230161599 (滿) 、618766405

● 微 信群:可加我微 信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2019-07-01 06:00 ~ 2019-07-31 24:00 在西安完成

● 最新修改時間:2019-07-01 06:00 ~ 2019-07-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店 https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書 http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班 http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁 https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客戶端 掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr )及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2651416/,如需轉載,請註明出處,否則將追究法律責任。

相關文章