数据库损坏 数据库和数据库管理系统
数据库数据恢复环境与故障概述:
一个部署在存储设备上的SQLServer数据库,包含多达一千多个文件,总计几十TB的存储空间。该数据库每十天会生成一个巨大的NDF文件,每个NDF文件的大小达到几百GB。数据库还包含两个LDF文件。
不幸的是,存储设备发生损坏,导致数据库无法正常使用。管理员在尝试恢复数据库的过程中发现,有数个NDF文件的大小变成了0KB。
尽管文件大小显示为0KB,但这些NDF文件在物理存储介质上可能仍然存在。可以尝试通过扫描和拼接数据库碎片来恢复这些NDF文件,并进一步修复数据库。
数据库数据恢复流程:
1. 移除所有存储设备上的磁盘并将其标记,然后由硬件工程师进行检测。经检测确认所有磁盘均无硬件故障,可正常读取。随后以只读模式对所有磁盘进行全盘镜像,完成镜像后将磁盘按照原样放回原存储设备中。后续的数据分析和恢复工作将基于这些镜像文件进行,以避免对原始数据造成二次。
2. 调用北亚企安数据恢复团队的工程师编写专门的数据库碎片扫描程序,根据NDF文件的页面特征,通过文件号和页号来扫描并拼接碎片,重新生成那些大小变为0KB的NDF文件。
3. 使用SQLServer文件检测工具对所有数据文件进行检测,发现拼接出的NDF文件中存在少量空页,其余文件状态正常。
4. 进一步分析发现,部分数据页在存储层面已丢失,无法恢复,即这些NDF文件无法完全恢复至原始状态。
5. 尝试附加数据库时出现错误提示:“处理数据库日志时出错,如果可能请从备份中还原。如果没有可用备份,可能需要重新生成日志。”
北亚企安数据恢复团队持续进行SQLServer数据库的数据恢复工作。
8. 再次尝试无日志附加数据库,依然报错“数据库存在一致性错误”。
10. 再次尝试无日志附加数据库时收到新的错误提示:“由于数据库未完全关闭,无法重新生成日志。”
北亚企安团队继续进行SQLServer数据库的数据恢复工作。
12. 最终成功附加数据库。
数据库数据恢复结果:
数据库成功附加后,用户方通过数据库中的对象进行了查询和验证。经过确认,表中的信息基本完整,数据恢复工作取得成功。用户方对数据恢复结果表示认可。