SQL Server数据库数据恢复环境:
某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。
SQL Server数据库故障:
存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
SQL Server数据库数据恢复过程:
1、将存储中所有磁盘编号后取出,经过硬件工程师的初步检测,没有发现有硬盘存在硬件故障,都可以正常识别。以只读方式将所有磁盘进行扇区级全盘镜像,镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、经过和管理员沟通以及初步检测,数据恢复工程师初步判断数据库报错的原因是D盘空间不足导致逻辑错误。
3、基于镜像文件对存储上的两组raid5磁盘阵列进行分析并重组,查看2组raid5阵列中的数据,将数据库文件备份出来并尝试附加数据库。数据库报错:“主数据库文件和次级数据库文件不匹配”。
4、查看.ndf文件的底层数据,发现该文件几乎没有任何数据。工程师将.mdf文件和.ndf文件之间的关联关系取消,单独使用.mdf文件附加数据库,依然报错:“日志文件(.ldf)和数据库文件(.mdf)不匹配”。
5、尝试无数据库附加操作,数据库可以附加但系统表有损坏,数据库依然无法正常使用。
6、尝试修复数据库系统表但是没有成功,数据表损坏严重,修复难度极大且效果难以保障。
7、数据恢复工程师将突破口放在数据库记录上,北亚企安数据恢复工程师编写一个小程序将数据库记录提取出来。根据数据库备份获取到该数据库的表结构并重构数据库表结构。然后将提取出来的数据库记录导入到新表。
8、经过数据恢复工程师和用户方的检测,数据库可以正常使用,查询的数据也没有发现问题。用户方认可数据恢复结果。
Tips:
合理分配数据库文件所在磁盘空间,及时清理垃圾数据,保证数据库的正常、安全运行。