1、数据库故障概述
SQL server数据库的数据无法被读取。
2、故障分析
SQL server数据库文件无法被读取,是由于底层File Record被截断为0,无法找到文件开头,数据表结构也被损坏。镜像文件的前面80M左后的空间,还有中间一部分被覆盖掉,导致系统表被损坏,所以无法读取,考虑用自动备份文件来提取表结构。
日志中的操作记录:
由于系统表被损坏,有大量数据表的结构无法被确定,只能靠工程师根据经验进行恢复工作。
3、解决方案
备份用户数据,对丢失数据的硬盘。做全盘备份,以确保数据的安全性。
分析备份文件中旧数据的数据库。
从旧数据库中寻找数据表的结构。
从日志中提取一部分数据表的结构。
从日志中和残留数据中提取完好的数据。
根据日志恢复对应的数据,并检查数据是否正确。
核对数据没问题后恢复所有数据。
4、数据恢复实施过程
4.1备份用户数据
由于数据全部都放在客户的原盘中,先交给硬件部门检测硬盘是否存在物理故障。经检测没问题后对每块硬盘做全盘镜像,使用专用工具将硬盘中所有扇区镜像到一块备份硬盘中。
4.2扫描镜像文件
用winhex打开残留文件,仔细分析硬盘底层数