当前位置: 首页 > news >正文

【服务器数据恢复】VMware虚拟机下的SQL Server数据库数据恢复案例

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

http://www.lryc.cn/news/26586.html

相关文章:

  • 详解旨在提升EVM底层性能的兼容公链Monad
  • 2023社会工作者证书怎么考 在哪里报名考试
  • 统计学 类别比变量的判断
  • 2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等
  • 如何在openKylin操作系统上搭建Qt开发环境
  • T_SQL和SQL的区别
  • 用Python自己写一个分词器,python实现分词功能,隐马尔科夫模型预测问题之维特比算法(Viterbi Algorithm)的Python实现
  • 刷题笔记2 | 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II ,总结
  • python 支付宝营销活动现金红包开发接入流程-含接口调用加签
  • Python操作Windows
  • Aptos SDK交互笔记(一)
  • 汽车 12V 和 24V 电池输入保护推荐
  • 龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式
  • 剑指 Offer 16. 数值的整数次方
  • 在苹果电脑 mac 上安装原神(playCover)
  • 数据结构考研习题精选
  • linux常用命令介绍 04 篇——uniq命令使用介绍(Linux重复数据的统计处理)
  • 网站打不开数据库错误等常见问题解决方法
  • 爬虫实战进阶版【1】——某眼专业版实时票房接口破解
  • 大话数据结构-普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal)
  • UNet-肝脏肿瘤图像语义分割
  • 三周爆赚千万 电竞选手在无聊猿游戏赢麻了
  • BERT学习
  • 大话数据结构-图的深度优先遍历和广度优先遍历
  • c语言指针怎么理解 第一部分
  • 计算机网络安全基础知识2:http超文本传输协议,请求request消息的get和post,响应response消息的格式,响应状态码
  • Pytest自动化框架~权威教程03-原有TestSuite的执行方法
  • web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
  • 【MyBatis】源码学习 05 - 关于 xml 文件解析的分析
  • 代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小子数组、59.螺旋矩阵II