MySQL工具之binlog2sql閃回操作
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql閃回工具binlog2sqlMySql
- MySQL誤刪資料?試試資料閃回工具binlog2sqlMySql
- MySQL閃回技術之binlog2sql恢復binlog中的SQLMySql
- MySQL使用binlog2sql閃回誤刪除資料MySql
- 利用binlog2sql閃回丟失資料SQL
- 【DB寶43】MySQL誤操作閃回恢復利器之my2sqlMySql
- 工具分享丨資料閃回工具MyFlash
- 【趙強老師】MySQL的閃回MySql
- DM7閃回與閃回查詢
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- 操作MySQL之sqlx庫MySql
- 18 . Go之操作MysqlGoMySql
- TarsCpp 元件之 MySQL 操作元件MySql
- Oracle 11G 閃回技術 閃回版本查詢和閃回事務查詢Oracle
- 2.6.3 指定閃回區
- Go 語言操作 MySQL 之 CURD 操作GoMySql
- Go 語言操作 MySQL 之 事務操作GoMySql
- MySQL之json資料操作MySqlJSON
- flashback query閃回資料
- Oracle資料庫閃回Oracle資料庫
- 使用binlog2sql工具來恢復資料庫SQL資料庫
- MySQL資料庫binlog解析神器-binlog2sql應用MySql資料庫
- Python之 操作 MySQL 資料庫PythonMySql資料庫
- DM8 閃回查詢
- MySql資料分割槽操作之新增分割槽操作MySql
- Go 語言操作 MySQL 之 SQLX 包GoMySql
- Oracle閃回技術--Flashback Version QueryOracle
- Oracle 閃回資料庫測試Oracle資料庫
- my2sql資料閃回SQL
- 【PDB】pdb閃回,Oracle還原點Oracle
- 詳解oracle資料庫閃回Oracle資料庫
- Go 語言操作 MySQL 之 預處理GoMySql
- Oracle 11G 閃回技術 使用Oracle閃回事務查詢Oracle
- MySQL 回表MySql
- Flashback Drop閃回刪除功能實踐
- dg_閃回資料庫實驗資料庫
- [20180423]表空間閃回與snapshot standby
- Orcale利用閃回功能恢復資料