服务器数据恢复-异常断电导致服务器硬盘离线的数据恢复案例

服务器数据恢复环境:

dell某型号服务器中有一组通过raid卡组建的raid10,该raid阵列中一共有4块磁盘。上层部署XenServer虚拟化平台,作为网站服务器使用。

服务器故障:

服务器异常断电导致服务器上的一台虚拟机不可用。需要恢复这台虚拟机上的数据库数据。

服务器数据恢复过程:

1、将故障服务器中所有磁盘编号后取出,由硬件工程师检测没有发现有磁盘存在明显的物理故障。将所有磁盘以只读方式做扇区级别的全盘镜像。镜像完成后将所有磁盘按照编号还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始数据造成二次破坏。

2、基于镜像文件对底层数据进行分析,经过分析发现服务器中磁盘通过LVM来管理。进入到"/etc/lvm/backup/"目录下查询是否有损坏的虚拟磁盘信息,如果查询有损坏的虚拟磁盘信息就说明LVM信息尚未更新;如果查询没有损坏的虚拟磁盘信息就说明LVM信息已经被更新,只能通过底层数据查找尚未更新的lvm信息。本案例就是从底层数据中查询到尚未更新的lvm信息。

3、找到尚未更新的lvm信息就说明数据还在,可以基于lvm信息分析&查找虚拟磁盘的分区数据,但是经过数据恢复工程师分析发现虚拟磁盘被破坏。经过服务器数据恢复工程师的进一步查找和分析后确认该区域的数据已经被破坏,只发现一些数据库页碎片。

4、数据恢复工程师试图通过拼接碎片来恢复数据。正常情况下rar压缩包的第一个扇区记录文件名,可以根据文件名反向分析压缩包的数据起始位置,将相应的压缩包底层数据提取出来并重命名。但是本案例中提取出来的压缩包解压时报错。

数据恢复工程师尝试使用rar修复工具并设置为忽略错误继续解压部分数据,但是仍然解压失败。

5、在数据库层面分析数据库的开始位置(数据库第九页是当前数据库名称,通过数据库名称反推数据库的开始位置),分析出数据库开始位置后,北亚企安数据恢复工程师根据每个数据库页的编号和文件号去底层数据扫描符合这个数据库页的所有数据,将所有扫描出来的数据重组为一个mdf文件。

6、通过校验程序检测重组出来的mdf文件,检测没有问题后提取数据。经过数据恢复工程师们的分析和重组最终提取出服务器内的所有数据并通过了初步验证。

7、数据恢复工程师搭建数据库环境,将恢复出来的数据库数据附加进去进行查询,查询结果一切正常,本次服务器数据恢复工作完成。

相关推荐
高兴就好(石2 小时前
DB-GPT部署和试用
数据库·gpt
这孩子叫逆2 小时前
6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
数据库·mysql
Karoku0662 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
码农郁郁久居人下3 小时前
Redis的配置与优化
数据库·redis·缓存
MuseLss4 小时前
Mycat搭建分库分表
数据库·mycat
Hsu_kk4 小时前
Redis 主从复制配置教程
数据库·redis·缓存
DieSnowK4 小时前
[Redis][环境配置]详细讲解
数据库·redis·分布式·缓存·环境配置·新手向·详细讲解
程序猿小D4 小时前
第二百三十五节 JPA教程 - JPA Lob列示例
java·数据库·windows·oracle·jdk·jpa
Flerken1015 小时前
数据库语言、SQL语言、数据库系统提供的两种语言
数据库·sql·oracle
掘根5 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全