【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例

时间:2022-12-07 14:15:15

MySQL数据库属于关系型数据库。SQL是一种用于操作关系型数据库的结构化语言。关系型数据库就是指在关系模型的基础上建立起来的数据库,是一种借助了集合代数等一些数学方法和数学概念处理数据的数据库。

MySQL数据库具有体积小,速度快,性价比高、开源、广泛支持各种主流操作系统的优势,被大中小型企业广泛使用。


MySQL数据库数据恢复环境:

本地服务器,操作系统为windows server;

部署mysql单实例,引擎类型为innodb,表空间类型为独立表空间;

没有数据库备份,未开启binlog。


MySQL数据库故障:

用户使用Delete命令删除数据时未添加where子句进行筛选,导致全表数据被删除,删除后再未对该表做任何操作。


MySQL数据库恢复方案:

1、本案例中MySQL数据库没有备份也未开启binlog日志,无法直接还原数据库,属于典型的表内mysql数据库误删除故障。

2、针对mysql(innodb引擎)误删除的数据恢复方案有三种:备份还原、binlog还原和记录深度解析。前两种方案不适用本案例情况,只能使用第三种-记录深度解析的方案恢复MySQL数据库数据。此方案原理:模拟innodb引擎记录管理方式,根据表结构信息将二进制文件解析为字符记录。


MySQL数据库数据恢复过程:

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

2、使用北亚开发的MySQL数据库数据恢复工具进行恢复:


【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例


【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例

3、用户提供了表结构脚本,可以使用工具中的5+3功能进行恢复。


4、读取表结构信息:


【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例

【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例

5、解析记录:


【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例


6、本工具默认将记录提取为SQL备份格式,等待解析完毕后将SQL备份格式的记录还原到数据库,查看结果:


【数据库数据恢复】MySQL数据库误删除无备份且未开启binlog的数据恢复案例

7、由用户随机挑选表内数据进行验证,并统计恢复记录总数。验证结果正确,总数符合原表内记录条数,数据恢复完成。