欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > mysql 日志恢复

mysql 日志恢复

2025/8/6 0:10:43 来源:https://blog.csdn.net/m0_47944994/article/details/142213721  浏览:    关键词:mysql 日志恢复

一:查看是否开启binlog日志

show variables like 'log_%'; 

二:查看日志存放目录:

SHOW VARIABLES LIKE '%datadir%';

三:查看日志列表

show binary logs; #获取binlog文件列表 
show master status; #查看当前正在写入的binlog文件

四:导出指定binlog日志

#把bin.00032日志转成temp.sql(时间是2024-09-11 8:54:402024-09-11 12:59:10范围内的)
mysqlbinlog  --no-defaults  -d test   --start-datetime='2024-09-11 8:54:40' --stop-datetime='2024-09-11 12:59:10'  bin.000032 >temp.sql#恢复sql
source temp.sql; #指定位置(远程登录日志并且恢复指定日志的数据)
mysqlbinlog --start-position=312 --stop-position=647 --base64-output=decode-rows -vv  bin.000032 >temp.sql

五:binlog日志转成可读日志(把binlog日志下载下来放到本地,本地转成可读的)

mysqlbinlog --no-defaults -vv --base64-output=decode-rows D:\data.000501 > D:\temp.sql

六:过滤binlog日志

#查找包含表名同时包含DELETE得行,并获取前面一行-B1,后面n+2,n为表得字段个数-A27(比如我sys_test表有25个字段那么就是n+2就是A27)
grep sys_test 1.sql -B1 -A27|grep INSERT  -B1 -A27 >2.sql

七:把delte语句转成insert语句

#linux环境
cat temp.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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词