服务器数据恢复环境:
一台某品牌 PowerEdge 系列服务器和一台 PowerVault 系列存储,下层是 ESXI 虚拟机文件,虚拟机中运行 SQL Server 数据库。
服务器故障:
机房非正常断电导致虚拟机无奈启动。管理员查看虚拟机发现虚拟机配置文件失落,所幸的是 xxx-flat.vmdk 磁盘文件和 xxx-000001-delta.vmdk 快照文件没有失落。管理员尝试复原虚拟机,将原虚拟机的 xxx-flat.vmdk 删除后新建了一个虚拟机,调配了几百 GB 的精简模式和几百 GBGB 的快照数据盘,然而并没有将原虚拟机内的数据恢复进去。
服务器数据恢复过程:
1、将挂载在 VMware vSphere Client 上的卷卸载后做镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,防止对原始数据造成二次毁坏。
2、通过对镜像文件进行检测 & 剖析后发现:a、断电导致虚拟机目录项曾经损坏;b、删除文件操作导致文件的数据区索引被革除;c、重建虚拟机操作导致调配给新建虚拟机的磁盘空间的数据底层被清零。前两种状况能够通过人工修复来复原数据,但如果第三种状况是新建虚拟机的磁盘空间占用了原虚拟机的开释空间,这部分空间的数据则无奈复原,须要进一步检测能力确定是否呈现这种状况。
虚拟机目录项:
3、数据恢复工程师剖析底层数据,在自由空间内排查被删除的虚拟机磁盘区域,扫描这部分区域发现了大量的碎片并拼接 & 重组这些碎片,然而通过拼接 & 重组后发现有局部碎片文件缺失,只能临时将缺失的文件碎片地位留空。
4、利用虚构磁盘快照程序将重组好的父盘和快照盘合并,生成一个新的虚构磁盘。
5、解释虚构磁盘中的文件系统,因为数据缺失,文件系统解释过程中呈现很多报错,提醒某些文件损坏。
文件系统解释后果:
6、在解析完文件系统后发现没有找到原始的数据库文件。宏桥备份和索菲备份这两个目录的目录构造失常,然而在尝试将备份导入到数据库中时提醒报错。
宏桥备份和索菲备份的局部目录构造:
导入.BAK 文件报错信息:
7、依据 SQL Server 数据库的构造去自由空间中找到数据库的开始地位。SQL Server 数据库的库名通常在库的第九页内,依据这一个性在底层扫描数据库页碎片,而后利用扫描进去的碎片重组 mdf 文件,在本案例中除了 cl_system3.dbf 和 erp42_jck.dbf 因有局部碎片
没有找到外(极有可能被笼罩了),其余数据库均校验胜利。
校验完的 MDF 文件:
cl_system3.dbf 文件中某个碎片失落的区域:
8、具体查看备份文件仍然没有找到这两个失落的文件,只有局部增量备份文件。因为 erp42_jck.dbf 文件中只缺失大量的页,依据缺失的页号在增量备份中查找,再将找到的页补到 erp42_jck.dbf 文件中,通过这个方法能够复原一部分失落的数据库页。然而补完后发现还是缺失局部页,无奈失常应用。
9、通过北亚企安自主开发的数据库解析程序将 erp42_jck.dbf 文件中重要的几十张表导出,并导入到新建的数据库中,复原出缺失的文件。
10、从新搭建原始环境,将复原进去的数据导入到新搭建的环境中,由用户亲自验证数据库的完整性,验证后确认所有数据残缺、数据库挂载胜利、下层利用运行失常,本次数据恢复工作实现。