下载离线包
下载pip软件
yum reinstall --downloadonly --downloaddir=./ python3-pip
克隆binlog2sql项目
git clone https://github.com/danfengcao/binlog2sql.git
下载离线依赖包
pip3 download -r requirements.txt ./
因为是mysql8.0还需要下载PyMySQL和mysql-replication
pip3 download PyMySQL==0.9.3 ./
pip3 download mysql-replication==0.21 ./
将以上所有依赖包打包同binlog2sql一并上传到离线安装那台机器的/usr/local/src/binlog2sql
离线安装依赖包
cd /usr/local/src/binlog2sql
rpm -ivh python3-pip-9.0.3-8.el7.noarch.rpm
pip3 install -r requirements.txt --no-index --find-links=./
pip3 install PyMySQL-0.9.3-py2.py3-none-any.whl
pip3 install --no-index --find-links=./ mysql-replication-0.21.tar.gz
开始恢复
python3 binlog2sql.py --host 10.10.10.103 -P 3306 -u root -p 123456 -d test_business -t act_evt_log --sql-type DELETE --start-file binlog.000021 --start-datetime='2023-06-21 13:50:00' --stop-datetime='2023-06-21 13:55:00' >delete.sql|cat
返回值可以看到
DELETE FROM `test_business`.`act_evt_log` WHERE `LOG_NR_`=1 AND `TYPE_`='1' AND `PROC_DEF_ID_`='1' AND `PROC_INST_ID_`='1' AND `EXECUTION_ID_`='1' AND `TASK_ID_`='1' AND `TIME_STAMP_`='2023-06-21 01:53:26' AND `USER_ID_`='1' AND `DATA_` IS NULL AND `LOCK_OWNER_` IS NULL AND `LOCK_TIME_` IS NULL AND `IS_PROCESSED_`=0 LIMIT 1; #start 885 end 1223 time 2023-06-21 14:20:07
确认sql语句没有错就可以拿delete.sql语句恢复了。