服务器数据恢复环境:
一台某品牌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、重新搭建原始环境,将恢复出来的数据导入到新搭建的环境中,由用户亲自验证数据库的完整性,验证后确认所有数据完整、数据库挂载成功、上层应用运行正常,本次数据恢复工作完成。

【服务器数据恢复】VMware虚拟机数据恢复案例的更多相关文章

  1. Xen Server虚拟机数据恢复的方法和数据恢复过程

    在服务器运行过程中如果出现意外情况突然断电很容易引起服务器故障,服务器中的硬件设备损坏可以修复或者购买,但是服务器中的数据一旦发生故障丢失,对于企业来说将是不可估量的损失.那么服务器数据一旦丢失就除了 ...

  2. VMWare虚拟机实例拷贝到另一台服务器后出现Error in the RPC receive loop: RpcIn: Unable to send.错误的解决

    把一个VMWare虚拟机实例拷贝到另一台服务器后,在事件查看器中的应用程序日志中不断出现Error in the RPC receive loop: RpcIn: Unable to send.错误, ...

  3. windows服务器装macos虚拟机(vmware)系统

    VMware14安装黑苹果macOS10.13流程 一.准备工具 VMware Workstation 14.1.2 Pro macOS High Sierra 10.13.iso格式或.cdr格式( ...

  4. EVA 4400存储硬盘故障数据恢复方案和数据恢复过程

    EVA系列存储是一款以虚拟化存储为实现目的的HP中高端存储设备,平时数据会不断的迁移,加上任务通常较为繁重,所以磁盘的负载相对是较重的,也是很容易出现故障的.EVA是依靠大量磁盘的冗余空间,以及故障后 ...

  5. EMC Isilon(OneFS)误删文件数据恢复过程<存储数据恢复>

    [科普Isilon的存储结构] Isilon内部使用的是分布式文件系统OneFS.在Isilon存储集群里面每个节点均为单一OneFS文件系统,所以Isilon在支持横向扩展的同时并不会影响数据正常使 ...

  6. VMware 虚拟化编程(13) — VMware 虚拟机的备份方案设计

    目录 目录 前文列表 备份思路 备份算法 备份细节 连接到 vCenter 还是 ESXi 如何选择快照类型 是否开启 CBT 如何获取备份数据 如何提高备份数据的传输率 备份厚置备磁盘和精简置备磁盘 ...

  7. VMware 虚拟机的虚拟磁盘编程知识点扫盲之二

    目录 目录 前文列表 VDDK 安装 VDDK VixDiskLib VADP 前文列表 VMware 虚拟机的虚拟磁盘编程知识点扫盲之一 VDDK 摘自官方文档:The Virtual Disk D ...

  8. VMware 虚拟化编程(15) — VMware 虚拟机的恢复方案设计

    目录 目录 前文列表 将已存在的虚拟机恢复到指定时间点 恢复为新建虚拟机 灾难恢复 恢复细节 恢复增量备份数据 以 RDM 的方式创建虚拟磁盘 创建虚拟机 Sample of VirtualMachi ...

  9. VMWARE虚拟机CentOS6.4系统使用主机无线网卡上网的三种方法介绍

    转自:http://www.jb51.net/network/98820.html 如何真正的实现VMWARE虚拟机CentOS6.4系统使用主机无线网卡上网   环境:WIN7旗舰版,台式机,U盘无 ...

  10. vmware虚拟机三种网络模式详解_转

    原文来自http://note.youdao.com/share/web/file.html?id=236896997b6ffbaa8e0d92eacd13abbf&type=note 由于L ...

随机推荐

  1. 继承与多态 动手动脑3方法覆盖(override)”的要点

    方法覆盖(override)"的要点 方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)! 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 以下子类 ...

  2. Golang HTTP编程及源码解析

    1.网络基础 基本TCP客户-服务器程序Socket编程流程如如下图所示. TCP服务器绑定到特定端口并阻塞监听客户端端连接, TCP客户端则通过IP+端口向服务器发起请求,客户-服务器建立连接之后就 ...

  3. CSU2022-2023C语言期中考试机试

    卡在出线概率了.40%,没想到遍历时反了,我去. 1.时钟加法 题目描述 小南最近迷上了各种形式的加法,例如时钟加法,时钟加法是指给定一个当前时间,其形式为h:m:s,计算加上n秒后新的时间.你能帮他 ...

  4. JZOJ 【2021.11.10NOIP提高组联考】

    简要题解 这套题比较 \(H_2O\) 建议题目背景美文共赏 \(\text{T1}\) 显然一个 \(O(n^3)\) 不能过的 \(dp\) 然而过了?! 用心在该卡时间的地方卡一卡 \(\tex ...

  5. ubuntu 中将DSLR相机用作网络摄像头

    一.安装所需软件 sudo apt-get install gphoto2 v4l2loopback-utils v4l2loopback-dkms ffmpeg 二.Video4Liunx 配置 1 ...

  6. channel 死锁

    死锁: - 单个协程永久阻塞 - 两个或两个以上的协程执行过程中,由于竞争资源或由于彼此通信而造成的一种阻塞的现象. channel 死锁场景: - 非缓存channel只写不读 - 非缓存chann ...

  7. .Net 6.0:WebAPI配置跨域

    NuGet程序包管理,搜cors,并下载 紧接着在Program中添加代码 builder.Services.AddCors(options =>{ options.AddPolicy(name ...

  8. LinuxK8S集群搭建三(部署dashboard)

    系统环境: CentOS 7 64位 准备工作: 通过虚拟机创建三台CentOS服务器,可参照之前的文章192.168.28.128 --master192.168.28.130 --node0119 ...

  9. windwos11没有Hyper-V的解决方法

    我的系统是windows11家庭版,程序添加这就没有hyper-v,但是可以手动添加,把下面这个脚本修改后缀.cmd即可(如:hyper-v.cmd),不会的可以直接下载我这个文件. Hyper-v执 ...

  10. oracle 2个数组列,剔除数组重复的数据。

    一.下面这样不规则的,数据如何剔除掉.循环筛选replace替换掉. 序号 正常时间 剔除时间 1    2022-12-19,2022-12-20,2022-12-21,2022-12-22,202 ...