首页 > 数据库 >数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?

时间:2023-11-09 14:32:02浏览次数:27  
标签:误删除 数据恢复 记录 数据库 binlog mysql 备份

数据库数据恢复环境:

一台本地windows sever操作系统服务器,服务器上部署mysql数据库单实例,引擎类型为innodb,表内数据存储所使用表空间类型为独立表空间。无数据库备份,未开启binlog。


数据库故障&分析:

工作人员在执行Delete命令删除数据时未添加where子句进行筛选,导致全表数据被删除,删除后未对该表进行其他操作。

在本案例中,由于mysql数据库没有备份也未开启binlog日志,无法直接还原数据库。

针对引擎类型为innodb的mysql 数据库误删除导致记录丢失的数据恢复方案有三种:备份还原、binlog还原和记录深度解析还原。对于本案例来说前两种方案不适用,只能使用记录深度解析的方案恢复删除的数据。此方案原理:模拟innodb引擎记录管理方式,根据表结构信息将二进制文件解析为字符记录。


数据库数据恢复流程:

1、用户方将表结构文件及表数据文件(.ibd)发送给数据库数据恢复工程师。

2、北亚企安数据恢复工程师团队针对此类mysql数据库(innodb引擎,无备份,binlog未开启)误删除故障进行过深入研究,开发了针对此类故障的mysql数据库数据恢复工具。使用这个北亚企安自主研发的mysql数据库数据恢复工具来恢复数据。

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?_数据库数据恢复

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?_mysql数据恢复_02

本案例中用户方提供了表结构脚本,使用数据恢复工具中的5+3功能进行恢复。

读取表结构信息:

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?_数据库数据恢复_03

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?_mysql数据恢复_04

解析记录:

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?_mysql数据恢复_05

本数据恢复工具默认将记录提取为SQL备份格式,解析完成后还原到数据库并查看结果:

数据库数据恢复—MySQL数据库(无备份,未开启binlog)误删除表数据怎么恢复数据?_数据恢复_06

3、随机挑选表内数据交由用户方验证,并统计恢复记录总数。用户方经过跨部门多方验证后确认恢复数据完整正确,总记录数符合原表内记录条数。本次数据恢复工作成功。

标签:误删除,数据恢复,记录,数据库,binlog,mysql,备份
From: https://blog.51cto.com/sun510/8278983

相关文章

  • 大型数据库实验1
    实验环境:linux,Hadoop3.3.0实验内容与完成情况:1.熟悉常用的Linux操作1)cd命令:切换目录(1) 切换到目录“/usr/local”(2) 切换到当前目录的上一级目录(3) 切换到当前登录Linux系统的用户的自己的主文件夹 2)ls命令:查看文件与目录查看目录“/usr”下的所有文件和目录 ......
  • indexDB数据库快速入门
    indexDB简介indexDB本质上就是存储数据,优点不受大小限制,当数据大于>5MB时我们无法通过localStorage、cookie(只能存4k)存储//连接数据库(连接的过程是一个异步的)window.indexedDB.open('库名称','库版本号')>=0constrequest=window.indexedDB.open('......
  • Python中使用sqlalchemy操作数据库遇到密码包含@的处理方法
    欺骗性的oracle12514错误,这就有问题了,努力方向就不对了。。。密码包含@的处理方法使用sqlalchemy操作数据库的时候,遇到密码中包含@的时候会报错。因为它是通过@来链接IP地址的,遇到密码里有@就跟语法里的@混乱分不清了。编辑器就会报错。比如下面这个例子:用户名:XXXXX密码:1......
  • 数据库(Oracle)序列(Sequence)的基本使用
    1.Sequence定义在Oracle中可以用SEQUENCE生成自增字段。Sequence序列是Oracle中用于生成数字序列的对象,可以创建一个唯一的数字作为主键。2.为什么要用Sequence你可能有疑问为什么要使用序列?不能使用一个存储主键的表并每次递增吗?或者将列设置为AUTOINCREMENT?如果使用一......
  • 从 SQL 查询优化技巧去看 h2 数据库查询原理 | 京东物流技术团队
    本文目标是:了解查询的核心原理,对比SQL查询优化技巧在h2database中的落地实现。前提:为了贴近实际应用,本文CodeInsight基于BTree存储引擎。数据查询核心原理数据库实现查询的原理:遍历表/索引,判断是否满足where筛选条件,添加到结果集。简单通用。对于选择表还是索引、如何遍历......
  • linux/docker 版 Sql Server新建的数据库插入中文乱码问题解决方案
    SqlServer插入遇到乱码原因:在英文系统中,SqlServer默认排序规则为英文字典顺序解决方案一:容器版SqlServer,在创建容器时,可以加上环境变量-eMSSQL_COLLATION=Chinese_PRC_CI_AS-eTZ=Asia/Shanghai 把排序规则设为中文字典顺序并忽略大小写区分重音,时区设置为上海,不然......
  • 高版本SqlServer数据库还原到低版本数据库
    需求:SqlServer2017还原到SqlServer2008数据库直接备份还原与拷贝文件还原均无法成功解决方案:1、修改兼容性,再备份数据库,还原(推荐)2、导出脚本、导入(即数据同步),大数据量不建议使用该方法......
  • 分享技术大牛成长课,从0到1带你手写一个数据库系统
    点击下崽:分享技术大牛成长课,从0到1带你手写一个数据库系统  提取码:li4t数据库系统是现代计算机系统中十分重要的一局部,它为应用程序提供了高效、牢靠、平安的数据存储和管理功用。手写一个数据库系统能够协助我们深化了解数据库的原理和完成,同时也能够进步我们的编程才能和系......
  • openGauss学习笔记-118 openGauss 数据库管理-设置数据库审计-维护审计日志
    openGauss学习笔记-118openGauss数据库管理-设置数据库审计-维护审计日志118.1前提条件用户必须拥有审计权限。118.2背景信息与审计日志相关的配置参数及其含义请参见表1。表1审计日志相关配置参数配置项含义默认值audit_directory审计文件的存储目录。/......
  • Python 数据库应用教程:安装 MySQL 及使用 MySQL Connector
    Python可以用于数据库应用程序。其中最流行的数据库之一是MySQL。MySQL数据库为了能够在本教程中尝试代码示例,您应该在计算机上安装MySQL。您可以在MySQL官方网站下载MySQL数据库。安装MySQL驱动程序Python需要一个MySQL驱动程序来访问MySQL数据库。在本教程中,我们将使用"......