您现在的位置是:首页 >其他 >【数据库数据恢复】sql server数据库无法附加查询的数据恢复案例网站首页其他
【数据库数据恢复】sql server数据库无法附加查询的数据恢复案例
数据库数据恢复环境:
一台Dell PowerEdge某型号存储,数块SAS硬盘分别组建raid1和raid5两组磁盘阵列。其中2块磁盘组建的RAID1,用于安装操作系统;其余几块磁盘组建raid5,用于存放数据。
上层安装的windows服务器,部署有sql server数据库,sql server数据库存放在C盘分区。
数据库故障&分析:
管理员发现存放sql server数据库的C盘剩余空间不足,于是将数据库路径指向D盘,在D盘生成了一个.ndf文件。
大约半个月之后,数据库出现故障,无法连接和附加查询。
由于数据库文件所在磁盘的容量不足,数据库无法正常运行,出现逻辑错误。
数据库数据恢复过程:
1、将存储设备中所有磁盘以只读方式进行全盘镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。
2、基于镜像文件分析存储中RAID1和RAID5的结构,获取RAID相关信息,利用这些信息虚拟重组RAID1和RAID5。
3、由于管理员在发现数据库出现故障之后进行过多次数据库恢复操作。每次恢复操作都是在原环境下进行的,导致原始的数据库文件被更改覆盖,磁盘空间被多次复写,所以无法使用尝试恢复之后的数据库文件进行修复。所幸的是,经过沟通得知在数据库发生故障的时候,对原始数据库文件进行过备份。
4、从虚拟重组出来的RAID5的空间中将管理员备份的数据库文件拷贝出来,尝试在数据库中附加,附加失败,错误提示如下:
错误提示主数据库文件和次级数据库文件不匹配。
5、查看.ndf文件底层,发现该文件中几乎没有数据。尝试取消.mdf文件和.ndf文件之间的关联并只用.mdf文件进行附加,依然报错但错误提示发生变化。错误提示如下:
错误提示日志文件(.ldf)和数据库文件(.mdf)不匹配。
6、尝试对数据库进行无数据库附加,附加成功。但是发现数据库系统表损坏,无法正常使用。
7、尝试修复数据库的系统表,但系统表损坏过于严重,无法修复。
8、北亚企安数据恢复工程师编写程序解析&提取数据库文件中的数据库记录。
9、根据数据库备份获取数据库的表结构,重构表结构并将提取出的数据库记录导入到新的表中。
数据验证:
由用户方对提取出的数据库记录进行验证,经过反复验证,确认数据完整有效,本次数据恢复工作完成。
Tips:
部署数据库时要合理分配数据库文件所在磁盘的空间,及时清理垃圾数据,保证数据库的正常、安全运行。