关于数据恢复:数据库数据恢复SQL-Server数据库系统表损坏的数据恢复案例

48次阅读

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

数据库故障 & 剖析:
SQL server 数据库数据无奈读取。
通过初检,发现 SQL server 数据库文件无奈被读取的起因是因为底层 File Record 被截断为 0,无奈找到文件结尾,数据表构造损坏。镜像文件的后面几十 M 空间和两头一部分空间被笼罩掉,零碎表损坏,无奈读取。思考用主动备份文件来提取表构造。
日志中的操作记录:

因为零碎表损坏,有大量数据表的构造无奈确定,只能依附数据恢复工程师的技术和教训尝试进行复原。
通过初检的后果,北亚企安数据恢复工程师团队最终敲定数据恢复计划:
1、备份数据。
2、基于备份文件剖析旧 SQL server 数据库底层数据。
3、从旧 SQL server 数据库中寻找数据表的构造。
4、从日志中提取一部分数据表的构造。
5、从日志和残留数据中提取完整的数据。
6、依据日志复原对应的数据,检查数据是否正确。
7、数据核查没有问题后复原出所有数据。

数据库数据恢复过程:
1、将波及到的所有硬盘交由硬件工程师进行物理故障检测,通过检测没有发现有硬盘存在物理故障。将每块硬盘以只读形式做全盘镜像,后续的数据分析和数据恢复工作都基于镜像文件进行,防止对原始磁盘数据造成二次毁坏。
对硬盘做镜像:

2、基于镜像文件剖析硬盘底层数据,发现底层残留许多以前 SQL server 数据库的日志和备份文件。通过查看剖析,发现日志中有很多包含插入语句的操作记录。在备份文件中发现建表语句和一部分旧数据。
3、北亚企安数据恢复工程师编写提取 SQL server 数据库相干数据的小程序,扫描硬盘中所有存在的 SQL server 数据库残留数据并进行提取。
4、剖析扫描到的所有日志文件,发现日志文件中的数据记录都有固定的结尾和结尾,每条数据在固定的地位都有 object ID 号。在接下来的扫描中,持续寻找有同样 object Id 的数据记录,发现这些数据记录构造雷同,由此能够判断这是完整的数据,能够提取。
5、剖析扫描到的备份文件,发现能够通过提取其中的建表语句来失去一部分的表构造。对于残余的表构造,因为截断为 0 的局部刚好在零碎表,所以没有方法提取,只能依据从日志中提取进去的数据猜想表构造和数据类型。
6、依据后面剖析的后果,北亚企安数据恢复工程师编写程序从备份文件中提取建表语句,依据建表语句剖析表构造与各种数据的类型。在残留的零碎表中寻找 22H、07H、05H 表,依据这些建设表与 OBJECT_ID 的对应关系。
7、北亚企安数据恢复工程师编写程序提取日志中的记录,依据 object ID 来对应数据和表,并将数据插入到新表中。
8、实现上述的所有操作后对数据进行验证,通过验证确认复原进去的新表与用工具察看到的数据基本一致。本次数据恢复工作实现。

正文完
 0