关于数据恢复:数据库数据恢复华为云mysql数据库误删除的数据恢复案例

37次阅读

共计 824 个字符,预计需要花费 3 分钟才能阅读完成。

数据库数据恢复环境:
华为云 ECS,linux 操作系统;
mysql 数据库,实例内数据表默认存储引擎为 innodb。

数据库故障:
在执行数据库版本更新测试时,用户误将本应在测试库测试的 sql 脚本执行在生产库中,导致局部表被 truncate,局部表内大量数据被 delete。

数据库复原过程:

1、因为该 ECS 内有其余业务在失常运行中,为防止被 truncate 表的底层数据不被毁坏,首先镜像备份 mysql 数据库 data 目录所在分区。

2、因为须要复原的被 truncate 表不存在大字段类型值和 myisam 引擎表,数据恢复工程师应用工具扫描数据段并下载复原数据所必须的 mysql 数据库段碎片。因为 innodb 引擎表的数据恢复必须依赖表构造信息,mysql 的表构造信息存储于对应表名的.frm 文件内。通过检测发现在本案例中的.frm 文件完整,可间接应用。下载须要的表对应的.frm 文件。

3、读取数据段内零碎表信息,获取须要复原的表在零碎表内的注册信息。

4、在下载实现的数据段文件内提取对应于各表的数据页,解析对应表的.frm 文件获取到该表的表构造信息。通过表构造信息获取到底层数据调配规定,依照规定拆分数据段内二进制数据并对不同类型进行字符展现转换(各类整型、浮点型、工夫型等),实现数据段到 sql 语句的转换。

5、复原被 delete 数据的表,过程和复原 truncate 表的相似,不同点在于解析数据时须要提取被标注为“delete”的记录。

6、依据解析出的表构造信息在环境中的 mysql 实例内创立表,并将复原出的数据导入。

7、因为间接从底层抓取出的记录可能存在主键不惟一(引擎在存储时产生的长期记录)和记录反复(缓冲段)以及乱码(扫描数据段时呈现特征值匹配胜利但不属于该表的数据段)等状况,提取出的记录可能存在异样,须要北亚企安数据恢复工程师手动解决。

8、开启远程桌面,由用户验证数据的准确性和残缺度。通过重复验证,truncate 表和 delete 记录的表都残缺复原。

正文完
 0