数据库数据恢复环境:
一台本地windows sever操作系统服务器,服务器上部署mysql数据库单实例,引擎类型为innodb,表内数据存储所使用表空间类型为独立表空间。无数据库备份,未开启binlog。
数据库故障&分析:
工作人员在执行Delete命令删除数据时未添加where子句进行筛选,导致全表数据被删除,删除后未对该表进行其他操作。
在本案例中,由于mysql数据库没有备份也未开启binlog日志,无法直接还原数据库。
针对引擎类型为innodb的mysql 数据库误删除导致记录丢失的数据恢复方案有三种:备份还原、binlog还原和记录深度解析还原。对于本案例来说前两种方案不适用,只能使用记录深度解析的方案恢复删除的数据。此方案原理:模拟innodb引擎记录管理方式,根据表结构信息将二进制文件解析为字符记录。
数据库数据恢复流程:
1、用户方将表结构文件及表数据文件(.ibd)发送给数据库数据恢复工程师。
2、北亚企安数据恢复工程师团队针对此类mysql数据库(innodb引擎,无备份,binlog未开启)误删除故障进行过深入研究,开发了针对此类故障的mysql数据库数据恢复工具。使用这个北亚企安自主研发的mysql数据库数据恢复工具来恢复数据。
本案例中用户方提供了表结构脚本,使用数据恢复工具中的5+3功能进行恢复。
读取表结构信息:
解析记录:
本数据恢复工具默认将记录提取为SQL备份格式,解析完成后还原到数据库并查看结果:
3、随机挑选表内数据交由用户方验证,并统计恢复记录总数。用户方经过跨部门多方验证后确认恢复数据完整正确,总记录数符合原表内记录条数。本次数据恢复工作成功。