delete数据后如何恢复

 

注:在binlog开启的状态下,如下的操作可恢复

 

1、查看binlog状态,是否是on

show variables like '%log_bin%';

 

2、如果上面查出来的结果是on,再看下存储的目录

show variables  like '%datadir%';

 

3、查看有哪些日志文件

show binary logs;

 

4、查看当前的日志

show master status;

 

5、查看日志中有哪些事件(假设要找的日志是master.000001)

show binlog events in 'master.000001';

 

6、查看日志内容,需要进入到mysql服务器的安装目录

mysqlbinlog master.000001

 

7、将日志内容输出为sql文件

sudo mysqlbinlog --base64-output=decode-rows -v --database=数据库名 --start-datetime="2022-07-28 00:00:01" --stop-datetime="2022-07-28 00:00:10" /data/mysql/master.000001 > /data/mysqllog.sql

 

8、查看上一步导出的mysql.sql文件,有大量的delete语句

 

9、过滤mysqllog.sql,转化为insert语句

cat mysqllog.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' > 0728.sql

 

10、重新导入数据

mysql -uroot -p < 0728.sql

 

posted @   opscool  阅读(744)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示