快照|虚拟化还原快照导致数据丢失恢复过程


一.需要恢复的虚拟化环境描述
虚拟化环境是vmfs 6.5 , 底层硬盘单盘容量是6T , 上册文件系统是vmfs文件系统 , 存储的数据是SqlServer数据库及其他办公文件 。
导致数据丢失的原因是技术人员对虚拟化进行了还原快照操作 , 导致了数据库数据的丢失 , 客户需要尽可能完整的恢复原来的数据库文件 。

快照|虚拟化还原快照导致数据丢失恢复过程
文章图片

二.数据恢复过程 北亚数据恢复工程师接到客户的原始磁盘文件后 , 首先在只读环境下对硬盘进行了镜像备份 , 镜像出来的文件将用于后期的数据分析及重组等操作 , 客户的原始数据将在镜像完成后归还客户 , 不进行任何操作 。
由于客户的硬件设备没有任何故障 , 因此也就不涉及物理修复方面的操作 , 镜像完成后 , 数据恢复工程师根据底层数据情况制定了两套数据恢复方案 , 分别是针对快照文件进行修复和拼接数据库碎片修复数据库两种方式 。
方案一 恢复快照文件 1、首先根据已经研究出来的vmfs文件系统结构 , 再根据客户虚拟机底层数据的具体情况 , 编写程序进行底层数据扫描 , 提取10T虚拟磁盘的元信息PBC,SBC 。

快照|虚拟化还原快照导致数据丢失恢复过程
文章图片

2、扫描到PBC , SBC信息后 , 尝试拼接丢失的快照文件 , 然后进行验证 , 经过数据恢复工程师的验证发现扫描提取出来的PBC , SBC损坏较多 , 无法利用现有的信息进行快照文件的拼接 , 方案一不可行 。
方案二 拼接数据库 1、还是要根据vmfs索引和位图信息进行数据扫描 , 提取虚拟磁盘的剩余空间 。
2、再次编写数据扫描程序 , 将剩余空间内的数据库页信息进行扫描和提取 。
3、经过与客户的沟通 , 确认了需要恢复的数据库名称及表名 , 根据扫描到的数据库页信息和用户提供的数据库名字和表名字 , 查找丢失数据库页 。

快照|虚拟化还原快照导致数据丢失恢复过程
文章图片

4、经过查找 , 提取了数据库页信息 , 再经工程师人工进行比对 , 确认了需要恢复的数据库信息 , 编写数据库拼接程序 , 调整相关系数 , 自动对扫描出的数据库碎片文件进行了拼接重组 , 最终成功恢复数据库文件 。
5、经过数据恢复工程师自验证 , 数据库可以正常打开和使用 , 随后由客户管理员进行数据最终验证 , 经过验证确认了本次数据恢复成功 。
三.恢复结果【快照|虚拟化还原快照导致数据丢失恢复过程】通过以上2种方案的尝试:其中方案一由于vmfs文件系统的元信息损坏较多 , 无法拼接出快照文件 。 于是采用方案二 , 对虚拟磁盘剩余空间进行扫描 , 获取数据库页信息 , 根据丢失数据库名字,表名字查找相关页信息 , 提取并拼接数据库碎片 , 最终成功恢复vmfs虚拟化下的数据库 。

    推荐阅读