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

服务器数据恢复环境:

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

相关推荐
流星白龙8 小时前
【Redis】4.基本全局命令
数据库·redis·缓存
王八八。9 小时前
Navicat 17破解版下载安装教程 附安装激活步骤(2026 最新版)
数据库·navicat
Jelena1577958579210 小时前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
流星白龙11 小时前
【Redis】3.Redis安装与命令行客户端
数据库·redis·缓存
凌虚12 小时前
基于 PostgreSQL WAL 构建 CDC 系统:原理与工程实现
数据库·后端·postgresql
BullSmall12 小时前
PostgreSQL 14 pg_dumpall 完整备份指南
数据库·postgresql·oracle
一只枫林13 小时前
MySQL内、外连接知识点汇总
java·前端·数据库
暮暮祈安14 小时前
Celery 新手入门指南
java·数据库·python·flask·httpx
xiaowang1234shs14 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
Quincy_Freak15 小时前
银河麒麟 aarch64 环境下轻量 SQLite 管理方案实践:SQLiteGo 落地体验
数据库·sqlite·sqlitego