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

服务器数据恢复环境:

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

相关推荐
千里码aicood1 小时前
springboot+vue心理健康服务小程序(源码+文档+调试+基础修改+答疑)
数据库·vue.js·spring boot
麦兜*1 小时前
Redis高可用架构设计:主从复制、哨兵、Cluster集群模式深度对比
java·数据库·spring boot·redis·spring·spring cloud·缓存
王嘉俊9251 小时前
Redis 入门:高效缓存与数据存储的利器
java·数据库·redis·后端·spring·缓存·springboot
王维1 小时前
【shardingsphere-jdbc】分表实践
java·数据库
xxy.c2 小时前
基于IMX6ULL芯片--I2C总线简单应用
数据库·mongodb
cookqq2 小时前
MongoDB源码分析慢日志:从配置到实现的完整解析
数据库·mongodb·nosql·慢日志
8K超高清2 小时前
汇世界迎全运 广州国际社区运动嘉年华举行,BOSMA博冠现场展示并分享与科技全运的故事
运维·服务器·网络·数据库·人工智能·科技
come112342 小时前
深入Spring Boot生态中最核心部分 数据库交互spring-boot-starter-data-jpa和Hibernate (指南五)
数据库·spring boot·hibernate
不剪发的Tony老师3 小时前
dbswitch:一款免费开源、功能强大的异构数据库迁移同步工具
数据库·etl·dbswitch
Crazy________4 小时前
13MySQL主从复制原理与搭建指南
数据库·mysql