在服务器运行过程中如果出现意外情况突然断电很容易引起服务器故障,服务器中的硬件设备损坏可以修复或者购买,但是服务器中的数据一旦发生故障丢失,对于企业来说将是不可估量的损失。那么服务器数据一旦丢失就除了痛哭之外别无他法了吗?不是的,下面我将引用一个真实案例为大家讲解意外断电导致服务器数据丢失的数据恢复方法和过程。文中若有歧义之处欢迎探讨。
.
虚拟机数据丢失情况描述
因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失。硬件环境是Dell 720服务器配戴一张H710P的RAID卡,由4块希捷2T STAT硬盘组成的RAID 10,上层环境是Xen Server 6.2版本操作系统,虚拟机是Windows Server 2003系统,10G系统盘 + 5G数据盘两个虚拟机磁盘,上层是Web服务器(ASP + SQL 2005的网站架构)。

`

分析故障原因
为确保客户原始数据的安全必须先将客户的数据盘连接到恢复环境服务器上准备对数据进行镜像备份,这一步中需要准备超过客户硬盘总容量的存储空间将数据以底层扇区的方式进行镜像备份。
在案例中分析底层数据发现Xen Server服务器中虚拟机的磁盘均以以LVM的结构存放,即每个虚拟机的虚拟磁盘都是一个LV,并且虚拟磁盘的模式是精简模式的。LVM的相关信息在Xen Server中都有记载,查看“/etc/lvm/backup/frombtye.com “下LVM的相关信息发现并没有存在损坏的虚拟磁盘信息,因此可以断定LVM的信息已经被更新了。接着分析底层看能否找到未被更新的LVM信息,果不其然在底层发现了还未更新的LVM信息。如下图:

.

根据未被更新的LVM信息找到了虚拟磁盘的数据区域,发现该区域的数据已被破坏。分析后发现造成虚拟机不可用的最终原因是因为虚拟机的虚拟磁盘被破坏,从而导致虚拟机中的操作系统和数据丢失。而导致这种情况的发生很有可能是虚拟机遭遇网络***或hack***后留下恶意程序造成的。仔细核对这片区域后发现,虽然该区域有很多数据被破坏了,但还是发现了很多数据库的页碎片。因此可以尝试将许多数据库的页碎片拼成一个可用的数据库。
.

制定数据恢复方案:
1、实施方案一
根据RAR压缩包的结构可以找到很多压缩包的数据开始位置,而RAR压缩包文件的第一个扇区中会记录此RAR的文件名。因此根据从客户那里得知备份数据库的压缩包文件名和目前找到的压缩包位置的文件名相匹配,即可找到备份数据库压缩包的开始位置。找到压缩包的位置后仔细分析这片区域的数据,然后将此区域的数据恢复出来重命名为一个RAR格式的压缩文件。然后尝试解压此压缩包,发现解压报错。
报错如下图所示:

.

仔细分析恢复出来的压缩包发现中有部分数据被破坏了,因此解压的时候报错。尝试使用RAR的修复工具看能否忽略错误,解压部分数据。结果修复完成之后解压的数据库只有网站的部分代码,并没有数据库的备份文件。因此可以判断数据的备份文件在RAR压缩包中是损坏的。
如下是解压出来的部分网站代码。

.
2、实施方案二
由于方案一并没有将数据库恢复出来,因此采用方案二来恢复数据。根据SQL Server数据库的结构去底层分析数据库的开始位置,在数据库的结构中,第9个页会记录本数据库的数据库名。因此在客户那里获取数据库的名称之后,再分析底层找到此数据库的开始位置。因为在数据库的每个页中都会记录数据库页编号以及文件号,所以可以根据这些特征编写程序去底层扫描符合数据库页的数据。
然后将扫描出来的碎片按顺序重组成一个完整MDF文件,再通过MDF校验程序检测整个MDF文件是否完整。重建的MDF文件如下:
 
.
验证数据
检测没问题之后再搭建数据库环境,将重组后的数据库附加到搭建好的数据库环境中。然后查询相关表数据是否正常,查询最新数据是否存在。截图如下:

.
虚拟机数据恢复总结:
由于数据库需要结合网站代码才能更好的验证数据库的完整性。客户从开发商里拿到了网站代码搭建好了环境,然后将恢复好的数据库发给用户。经用户验证后,数据库没问题,通过拼数据库碎片的方式成功将数据库恢复完成,整个数据恢复成功。

转载于:https://blog.51cto.com/sun510/2062531

服务器断电导致虚拟机数据丢失怎么恢复?相关推荐

  1. Xen Server虚拟机数据丢失的恢复过程

    虚拟机数据丢失情况描述 因服务器突然断电原因导致Xen Server服务器中一台VPS(即Xen Server虚拟机)不可用,虚拟磁盘文件丢失.硬件环境是Dell 720服务器配戴一张H710P的RA ...

  2. 【服务器数据恢复】服务器断电导致RAID报错的数据恢复案例

    服务器数据恢复环境: 某品牌ProLiant DL系列服务器, 6块SAS硬盘组成RAID5磁盘阵列, WINDOWS SERVER操作系统, 存储了企业的内部文件. 服务器故障&分析: 服务 ...

  3. 虚拟机 服务器 断电,esxi服务器断电后虚拟机无法开启(如何使用esxi中的虚拟机)...

    断电之后esxi里的虚拟机无法启动了,vclinet也连接不上了,报错为503.数据. 重装服务器的esxi系统,安装完后,重新连接存储设备,加载存储,打开存储中的虚拟机目录,通过打开vmx文件导入之 ...

  4. DELL R720服务器4块sas硬盘组成raid5扩容导致的数据丢失如何恢复

    [服务器数据恢复故障描述] 客户一台Dell R720服务器,配置有一组raid5磁盘阵列,阵列由4块sas硬盘组成,每块硬盘的容量为4T.由于业务扩大,原本的阵列空间不足,客户想添加2块硬盘到服务器 ...

  5. ppt恢复保存前的文件_文档忘记保存怎么恢复?断电导致文件丢失如何恢复?

    作者易雪龙 转自Word联盟 没有保存文档还能恢复吗?死机.断电.蓝屏导致来不及保存文档,还能恢复吗?答案当然是可以的!Office中本身就有恢复文档的功能,可以帮助我们最大化的挽回损失.Office ...

  6. [vSphere]ESXi异常断电导致虚拟机无法打开

    环境说明 单ESXi 6.7主机,其上安装VCSA 6.7 实现管理. 故障现象 由于电力故障,导致ESXi异常断电,断电前处于关机状态的虚拟机不受影响,断电前处于开机状态下的虚拟机全部无法启动,且除 ...

  7. 服务器断电后找不到磁盘,服务器断电数据丢失恢复原理和恢复过程

    最近小编我连续几天接到了大量关于服务器断电后的各种数据丢失,有的是意外断电导致服务器无法启动了,有的是服务器可以启动但是虚拟机丢失了,还有的是服务器断电后有多块硬盘出现故障离线了等等--(怎么好像最近 ...

  8. 服务器断电mysql文件丢失_服务器断电了怎么恢复数据?

    最近小编我连续几天接到了大量关于服务器断电后的各种数据丢失,有的是意外断电导致服务器无法启动了,有的是服务器可以启动但是虚拟机丢失了,还有的是服务器断电后有多块硬盘出现故障离线了等等.....(怎么好 ...

  9. raid-6磁盘阵列损坏导致数据丢失的恢复过程(图文教程)

    一.故障描述 机房突然断电导致整个存储瘫痪,加电后存储依然无法使用.经过用户方工程师诊断后认为是断电导致存储阵列损坏. 整个存储是由12块日立硬盘(3T SAS硬盘)组成的RAID-6磁盘阵列,被分成 ...

最新文章

  1. 他保送北大、读完博士选择回中学任教,“做科研太枯燥,自己更适合教书”...
  2. php神盾 var 1.54,PHP变量可用字符 - 神盾加密解密教程(一)
  3. java继承----类的复用
  4. python hmac
  5. ActionScript 3.0 Step By Step系列(三):学学流程控制,编编if-else switch while for
  6. JavaFX UI控件教程(二十六)之Pagination Control
  7. ftp完成版本更新php,php – 将开发团队从FTP转换为版本控制系统
  8. 学习Linux——计算机概论
  9. SpringBoot的启动过程
  10. ThinkPhp框架:父类及表单验证
  11. java new char 初始化_java考试复习
  12. 多进程/多线程的比较
  13. abaqus实例手册_ABAQUS例子问题手册目录.pdf
  14. Java创建ES嵌套文档及查询
  15. 前端基础—HTML制作课程表
  16. 如何用树莓派搭建一台永久运行的个人服务器?
  17. android背光,Android背光亮度调节
  18. 2020国内可用的android镜像网站
  19. 关于Open函数的newline参数
  20. wineqq解决字体问题

热门文章

  1. Linux上手动编译apache
  2. 动手学深度学习---下载d2l
  3. H3C交换机配置基本命令详解
  4. 06 RuoYi-Vue后台管理系统-系统监控模块
  5. 制作一张支持中文的Knoppix CD
  6. 4 海思Hi3518E实例代码分析
  7. SQL 流程控制语句 之五 RETURN语句介绍
  8. ICMP协议及其抓包分析
  9. 2.3. 群组控制器(CC)
  10. 【无标题】linux一些常用命令