MySQL-DML数据闪回之binlog2sql

最佳实践

Posted by dbstack on November 26, 2019

MySQL-DML数据闪回之binlog2sql

一、安装binlog2sql依赖

yum install git python-pip
git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
pip install -r requirements.txt

二、binlog2sql只支持MySQL数据库启动着

把需要解析的binlog复制到相应的logs目录下,对应好mysql-bin.index,赋权mysql权限

chown -R mysql. logs/

三、利用binlog2sql解析binlog

(1)解析zx_user_center库中uc_enterprise_user表 时间段内的dml  insert 语句
python /js/binlog2sql/binlog2sql/binlog2sql.py \
-hlocalhost -P3306 -uroot -p'XXXX' \
--start-file='mysql-bin.000004' \
--end-file='mysql-bin.000010' \
-d zx_user_center -t uc_enterprise_user \
--sql-type="INSERT" \
--start-datetime='2019-11-16 08:00:00' \
 --stop-datetime='2019-11-21 18:20:00' \
 >uc_user-iddle.sql

(2)解析zx_user_center库中uc_enterprise_user表 时间段内的dml  delete 语句
python /js/binlog2sql/binlog2sql/binlog2sql.py \
-hlocalhost -P3306 -uroot -p'XXXX' \
--start-file='mysql-bin.000004' \
--end-file='mysql-bin.000010' \
-d zx_user_center -t uc_enterprise_user \
--sql-type="DELETE" \
--start-datetime='2019-11-16 08:00:00' \
 --stop-datetime='2019-11-21 18:20:00' \
 >uc_user-iddle.sql

(3)生成zx_user_center库中uc_enterprise_user表 时间段内的dml  delete 语句的回滚语句

python /js/binlog2sql/binlog2sql/binlog2sql.py \
-hlocalhost -P3306 -uroot -p'XXXX' \
--start-file='mysql-bin.000004' \
--end-file='mysql-bin.000010' \
-d zx_user_center -t uc_enterprise_user \
--sql-type="DELETE" \
--start-datetime='2019-11-16 08:00:00' \
 --stop-datetime='2019-11-21 18:20:00' \
 -B >uc_user-iddle.sql