最近小编我连续几天接到了大量关于服务器断电后的各种数据丢失,有的是意外断电导致服务器无法启动了,有的是服务器可以启动但是虚拟机丢失了,还有的是服务器断电后有多块硬盘出现故障离线了等等.....(怎么好像最近全国各地的机房供电都不太稳定的样子)。现在我们言归正传,通过对其中一例服务器断电导致数据丢失的案例给大家简单介绍一下服务器断电后怎么进行数据恢复,仅供技术交流,如果有更简便的方法欢迎探讨。
服务器断电数据丢失情况介绍
我们案例中的服务器因为突然断电导致一台虚拟机不可用,至于服务器的具体配置情况如下图所示。
分析服务器底层数据情况
老生常谈但是必须要说的注意事项:所有的数据恢复操作都必须将客户的数据盘连接到数据恢复环境的服务器上进行镜像备份,然后在镜像文件上进行数据分析与服务器数据恢复,切记不可对客户原服务器做任何操作,保证客户原服务器数据初始状态。
好了回到我们案例中来,经过数据恢复工程师的分析发现客户服务器中丢失的虚拟机磁盘全部采用了LVM的存放结构,这时候我们到“/etc/lvm/backup/”目录下查询看有没有损坏的虚拟磁盘信息,如果有就说明LVM信息尚有保存。如果查询没有,就说明该信息已经被更新,只能通过底层数据查找没有更新的lvm信息。在本案例中就是从底层数据中查询到了尚未更新的lvm信息,请见下图:
找到lvm信息就说明数据还在,以lvm信息为基础进行分析查找虚拟磁盘的分区数据,但是在本案例中经过数据恢复工程师的一分析发现虚拟磁盘被破坏掉了,这是比较奇怪的现象。经过服务器数据恢复工程师的进一步查找和分析发现该区域的数据确实被破坏了,仅发现了一些数据库页碎片,要想进行数据恢复只剩下拼数据库碎片这一种方法了。
开始进行服务器数据恢复操作
在介绍数据恢复过程前简单介绍一下rar压缩包的结构:正常情况下rar压缩包的第一个扇区记录的是文件名,这样就可以根据文件名反向分析压缩包的数据起始位置,然后把这个相应的压缩包底层数据提取出来并重命名。数据恢复理论方法到此就介绍完了,但是在实际恢复过程中却出了意外,提取出来的压缩包解压时报错,报错信息如下图所示:
由于解压数据报错,数据恢复工程师首先尝试使用rar修复工具忽略错误,继续解压部分数据,但是解压依旧失败。常规的数据恢复方案恢复失败了,下面将由数据恢复工程师根据实际情况进行调整数据恢复方案进行服务器数据恢复。
在数据库层面分析数据库开始位置,这里解释一下原因:数据库第九页是当前数据库名称,知道库名时可以由此反推数据库开始位置。分析出数据库开始位置后再根据每个数据库页的编号和文件号去底层数据扫描符合这个数据库页的所有数据出来,最后就可以把刚才所有扫描出来的数据重组委一个mdf文件,后期经过校验程序检测合格后即可进行数据提取了。重组后的mdf文件如下图所示:
服务器数据恢复结果验证
本次服务器数据恢复过程可以说是非常坎坷了,经过数据恢复工程师们的分析和重组终于提取出了服务器内的数据并通过初步验证。数据恢复工程师搭建了一组数据库环境,将恢复出来的数据库数据附加进去进行查询,经查询最新数据正常,本服务器数据恢复成功,恢复结果见下图: