今天主要介绍delete误删除数据后,怎么去利用binlog日志去恢复,后续会介绍各种场景的恢复。此文章写了很久了,还有很多地方需要更新,后续会全面更新。
- 查看binlog是否开启
show variables like '%log_bin%';
2.查看数据文件存放路径:bin-log路径
show variables like '%datadir%';
3.找到删除时间段的binlog,翻译为sql
./mysqlbinlog --base64-output=decode-rows -v --database=test --start-datetime="2022-04-19 14:00:00" --stop-datetime="2022-04-19 15:25:00" "/usr/local/mysql/data/mysql-bin.000007" > /tmp/1.sql
4.在生成的 mysqllog.sql 文件同路径下 ,生成将delete翻译为insert的sql文件
cat 1.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > mysqllogOK.sql