標籤:binlog2sql 閃回 誤操作
軟體包:連結:https://pan.baidu.com/s/15dDeGufVWOgVrfATGWBzaA 密碼:gnz8
DBA或開發人員,有時會誤刪或者誤更新資料,如果是線上環境會影響較大,這就需要能快速復原;而MySQL閃回(flashback)利用binlog能直接進行復原,並且能快速恢複資料(MySQL閃回現在只支援DML語句進行閃回)。
利用binlog閃回需要的條件:
Mysql參數設定:
log_bin = /目錄/mysql-bin.log(開啟)
binlog_format = row
binlog_row_image = full(預設是full)
工作原理主要是對於delete操作,從binlog取出delete資訊,產生insert的復原語句。對於insert操作,復原SQL是delete。對於update操作,復原sql應該交換SET和WHERE的值。
安裝:
環境準備安裝各種依賴的工具包列表
將python換成python3.6版本 (python版本升級參考部落格:78218277)
python-pip ,
PyMySQL ,
python-mysql-replication,
wheel argparse
1、binlog2sql下載
https://github.com/danfengcao/binlog2sql
2、binlog2sql依賴包安裝
(1)PyMySQL-0.8.0安裝
https://pypi.python.org/pypi/PyMySQL/
[[email protected] binlogsql]# tar -xzvf PyMySQL-0.8.0.tar.gz
[[email protected] binlogsql]# cd PyMySQL-0.8.0
[[email protected] PyMySQL-0.8.0]# python setup.py install
(2)wheel-0.31.0安裝
https://pypi.python.org/pypi/wheel/
[[email protected] binlogsql]# tar -xzvf wheel-0.31.0.tar.gz
[[email protected] binlogsql]# cd wheel-0.31.0
[[email protected] wheel-0.31.0]# python setup.py install
(3)python-mysql-replication安裝
https://github.com/noplay/python-mysql-replication
[[email protected] binlogsql]# unzip python-mysql-replication-master.zip
[[email protected] binlogsql]# cd python-mysql-replication-master
[[email protected] python-mysql-replication-master]# python setup.py install
(4)可以通過pip安裝相應的依賴包
https://pypi.python.org/pypi/pip
[[email protected] tools]# tar -xzvf pip-10.0.1.tar.gz
[[email protected] tools]# cd pip-10.0.1
[[email protected] pip-10.0.1]# python setup.py install
[[email protected] binlog2sql-master]# pip install -r requirements.txt
可能會出錯誤。
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.6/site-packages/mysql_replication-0.18-py3.6.egg'
依賴包版本問題。
執行。。pip install mysql-replication
再執行 pip install -r requirements.txt
顯示都已安裝完成。
mysql閃回工具binlog2sql 安裝使用