共计 1096 个字符,预计需要花费 3 分钟才能阅读完成。
SqlServer 数据库故障 & 剖析:
SQL server 数据库的数据无奈被读取。管理员分割咱们数据恢复核心进行数据库数据恢复。
数据库数据恢复工程师对故障数据库进行剖析,发现 SQL Server 数据库文件无奈被读取的起因是因为底层 File Record 被截断为 0,无奈找到文件结尾,数据表构造也被损坏。镜像文件后面 80M 左右的空间和两头一部
分空间被笼罩掉,零碎表损坏,无奈读取,思考用主动备份文件来提取表构造。
日志中的操作记录:
因为零碎表被损坏,有大量数据表的构造无奈被确定,只能靠数据库数据恢复工程师依据教训进行复原工作。
数据库数据恢复计划:
通过北亚数据库数据恢复工程师团队的会诊,确定以下数据库数据恢复计划:
备份用户数据——剖析备份文件中旧数据的数据库——从旧数据库中寻找数据表的构造——从日志中提取一部分数据表的构造——从日志中和残留数据中提取完整的数据——依据日志复原对应的数据,并检查数据是否正确
——核查数据没问题后复原所有数据。
SqlServer 数据库数据恢复过程:
1、备份数据。
硬件工程师首先检测硬盘是否存在物理故障。没有发现硬件问题后对每块硬盘做镜像备份。
应用业余工具备份所有硬盘数据:
2、扫描镜像文件。
用工具关上残留文件并剖析硬盘底层数据,发现硬盘底层中还残留着许多 SQL Server 的日志和备份文件。残留日志中有很多数据库插入语句的操作记录。残留备份文件中发现建表语句和局部旧数据,尝试提取这些数据。
为了放慢数据提取速度,北亚数据恢复工程师编写了一个提取数据库相干数据的小程序,扫描整个硬盘中所有的数据库残留数据,提取所有数据。
3、剖析扫描数据。
对扫描到的所有日志文件进行剖析发现日志文件中分数据页,有着固定的结尾和结尾,其中每条数据在固定的地位都有本人的 object ID 号,在扫描文件中持续搜查有同样 object Id 的数据记录,发现构造雷同,能够确定这是完整的数据,能够提取。
再对扫描到的备份文件进行剖析发现从中能够提取出很多建表语句,获取到一部分表构造。对于残余的表构造,因为截断为 0 的局部刚好在零碎表,没有方法提取表构造,只能从日志中提取的数据来推断表构造和数据类型。
4、提取数据。
依据之前剖析,北亚数据恢复工程师编写程序从备份文件中提取建表语句,依据建表语句剖析出表构造与各种数据类型,同时在残留的零碎表中寻找 22H、07H、05H 表。依据这些建设表与 OBJECT_ID 的对应关系编写新的程序对日志中的记录进行提取,依据 object ID 来对应数据和表,并插入到新表中。
5、验证所有数据。
经管理员亲自验证,复原进去的新表与应用业余工具察看到的数据基本一致,本次数据恢复胜利。