工具下載地址binlog2sql
他這個工具支持 linux Mac 也能安裝 只要有python 環(huán)境都能運行
安裝以及配置
binlog2sql
從MySQL binlog解析出你要的SQL。根據(jù)不同選項,你可以得到原始SQL、回滾SQL、去除主鍵的INSERT SQL等。
用途
- 數(shù)據(jù)快速回滾(閃回)
- 主從切換后新master丟數(shù)據(jù)的修復
- 從binlog生成標準SQL,帶來的衍生功能
項目狀態(tài)
正常維護。應用于部分公司線上環(huán)境。
- 已測試環(huán)境
- Python 2.7, 3.4+
- MySQL 5.6, 5.7
安裝
git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
#如果使用的是python3 建議直接使用pip3 進行安裝, 執(zhí)行前請先修改 txt文件內(nèi)容
pip3 install -r requirements.txt
修改 requirements.txt 文件內(nèi)容為:
#版本一定需要是0.9.3 否則腳本無法使用
PyMySQL==0.9.3
wheel==0.29.0
mysql-replication==0.21
此處修改很重要,一定要調(diào)整,安裝之后我們就正常了
MySQL server必須設(shè)置以下參數(shù):
[mysqld]
#server_id 是唯一的
server_id = 1
log_bin = mysql-bin
max_binlog_size = 256M
# 這個地方一定要設(shè)置為row 設(shè)置為mixed 此工具無法執(zhí)行rollback
binlog_format = row
binlog_row_image = full
binlog_expire_logs_seconds=43200
log_bin_index=/usr/local/var/mysql/mysql-bin.index
datadir=/usr/local/var/mysql
binlog-ignore-db = information_schema
binlog-ignore-db = mysql
binlog-ignore-db = sys
binlog-ignore-db = performance_schema
log_error = /usr/local/var/mysql/mysql-error.log
重啟mysql brew service stop mysql && brew service start mysql 如果啟動失敗,查看 mysql-error.log
查詢binlog sql 內(nèi)容
如果不知道文件在哪,請在 mysql 下執(zhí)行
show master logs

image.png
python3 binlog2sql.py -h127.0.0.1 -P3306 -uroot -p123456 -d local_test -taccount --start-file='mysql-bin.000001'

image.png
回滾日志方式
具體使用請參考下載地址:
# -B 恢復 等價于 參數(shù) --flashback
python3 binlog2sql.py -h127.0.0.1 -P3306 -uroot -p123456 -d local_test -taccount --start-file='mysql-bin.000001' -B
#等價下面
python3 binlog2sql.py -h127.0.0.1 -P3306 -uroot -p123456 -d local_test -taccount --start-file='mysql-bin.000001' --flashback

image.png
以上是在使用這個工具遇到的兩個問題,再次記錄一下,幫助排坑