使用MySQL二进制日志复原已删除数据方法
发布时间:2023-10-20 16:01:27 所属栏目:MySql教程 来源:
导读:本文主要给大家简单讲讲使用MySQL二进制日志恢复已删除数据方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望使用MySQL二进制日志恢复已删除数据方法这篇文章
本文主要给大家简单讲讲使用MySQL二进制日志恢复已删除数据方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望使用MySQL二进制日志恢复已删除数据方法这篇文章可以给大家带来一些实际帮助。 删除 MySQL 表中的数据 mysql> use sbtest; mysql> select count(*) from sbtest1; +----------+ | count(*) | +----------+ | 1000 | +----------+ 1 row in set (0.00 sec) mysql> delete from sbtest1; Query OK, 1000 rows affected (0.21 sec) mysql> select count(*) from sbtest1; +----------+ | count(*) | +----------+ | 0 | +----------+ 1 row in set (0.00 sec) 复制代码 确认时间点和当前二进制日志文件,从二进制日志中读取操作记录 mysqlbinlog \ --start-datetime="2018-09-27 15:55:00" \ --stop-datetime="2018-09-27 15:00:00" \ --base64-output=decode-rows \ --result-file=result.sql \ -v /var/lib/mysql/binlog.000022 复制代码 其中的一条记录 使用MySQL二进制日志恢复已删除数据方法 去除不相关的内容 grep -A 5 "DELETE FROM \`sbtest\`.\`sbtest1\`" result.sql > 1.txt 复制代码 使用MySQL二进制日志恢复已删除数据方法 提取数据 grep "=" 1.txt > 2.txt sed -i 's/### //g' 2.txt 复制代码 使用MySQL二进制日志恢复已删除数据方法 使用以下脚本生成 INSERT 语句 [root@mysql03 tmp]# cat r2.sh #!/bin/bash vs="" while read line do n=`echo $line | awk -NF "=" '{print $1}'` v=`echo $line | awk -NF "=" '{print $2}'` if [ "$n" = "@1" ]; then vs="INSERT INTO \`sbtest\`.\`sbtest1\` VALUES("$v elif [ "$n" = "@2" ]; then vs=$vs" , "$v elif [ "$n" = "@3" ]; then vs=$vs" , "$v elif [ "$n" = "@4" ]; then vs=$vs" , "$v");" echo $vs >> 3.txt fi done < 2.txt [root@mysql03 tmp]# sh r2.sh 复制代码 使用MySQL二进制日志恢复已删除数据方法 将数据导入到 MySQL 表中 [root@mysql03 tmp]# mysql < 3.txt mysql> select count(*) from sbtest1; +----------+ | count(*) | +----------+ | 1000 | +----------+1 row in set (0.00 sec) (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐