清茶书香

一杯清茶,一本书籍,一个下午。


  • 首页

  • 归档

  • 分类

  • 关于

  • 搜索
Redis JPA Solr SpringData SpringMVC localRepository local Mapper 事务 Mybatis JDBC AOP DI IOC 常用函数 触发器 存储过程 Promise Gateway SpringCloud vue-cli axios es6 webpack npm vue 个性化 zsh 终端 caffeine jvm缓存 guava cache validation Mapping MapStruct comment 小程序 建站 WeHalo config logback plugins database idea maven spring https http nginx password RabbitMQ 秒杀系统 Windows MySQL 数据备份 halo SpringBoot shell Linux ip Optional Stream Lambda k8s Docker 列编辑 vim MacOS 图片合成 Java 远程联调 nps 内网穿透

MySQL无备份未开启二进制的日志,恢复数据库的数据

发表于 2020-01-09 | 分类于 MySQL | 0 | 阅读次数 187

在数据库为备份的情况下,并且还没开启MySQL数据的二进制日志,那么恢复数据的难度就会大大增加,但经过我的实验,还是可以通过Java打印的日志恢复数据的(如果你的服务未开启Java里的SQL日志就不需要往下看了)。

恢复数据的环境为:

MySQL数据库+tomcat+Java后台+mybatis框架

具体方法是通过将Linux服务器上tomcat输出的日志筛选出来我们需要的,再将这些占位符SQL语句导入idea的mybatis日志插件中,转换成能直接运行的SQL语句

其中Linux筛选日志的命令为:

sed -n '/2019-12-13 09:20:01/,/2020-01-02 15:38:39/p' catalina.out >> bak.log

grep -A 5 'insert into' bak.log >> bak2.log
grep -A 5 'delete from' bak.log >> bak2.log

这几行命令的作用为:将catalina.out中的2019-12-13 09:20:01到2020-01-02 15:38:39日志导入到bak.log文件中,而后面的两条命令是将bak.log中的新增和删除的SQL语句这行和后5行追加输入到bak2.log文件中。

此时bak2.log中就基本上全部都是SQL语句了,这时就需要用到我们的idea中的mybatis日志插件(插件名称:MyBatis Log),将这些全部复制到插件中,点击Resore Sql按钮上成原始的可运行SQL。

打开位置(提示SQL Text的按钮)输入框上方放日志SQL,下方生成可运行SQL
此时我们就可以拿到一堆可以直接运行的SQL语句了,但是为了避免还有一些无用的查询SQL,我们可以把这些SQL语句复制到Notepad++或者Sublime等里面将这些不需要执行的SQL找出来,使用列编辑按照SQL的注释语法注释掉它们即可。

本文方法最大的问题是不方便将更新的SQL找出来,当然如果不怕麻烦,而且也有必要的话可以用grep -A 5 'update 表名' bak.log >> bak2.log命令将更新的SQL也导出来。以及本文到筛选日志给定了时间,因为我有2019-12-13的备份数据,因此我可以筛选到这一天。

当然,经过此役备份肯定是会做好的,也告诫大家备份一定要做好,我这次就是因为navicat的备份计划没有生效,导致我的备份缺失。备份要检查,这个习惯要养成啊。

Bennett wechat
欢迎收藏我的微信小程序,方便查看更新的文章。
  • 本文作者: Bennett
  • 本文链接: https://hibennett.cn/archives/recover-database
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# Java # MySQL # Mybatis
安装jar包到本地maven仓库
windows压缩备份远程MySQL数据库
  • 文章目录
  • 站点概览
Bennett

Bennett

60 日志
28 分类
74 标签
RSS
Github E-mail Gitee QQ
Creative Commons
Links
  • MacWk
  • 知了
0%
© 2020 — 2023 hibennett.cn版权所有
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4

浙公网安备 33010802011246号

    |    浙ICP备2020040857号-1