服务器数据恢复环境:
某品牌 StorageWorks 服务器;
8 块 SAS 硬盘组成 raid5,一块热备盘。
服务器故障:
服务器运行过程中有两块硬盘先后离线,服务器瘫痪,lun 无奈失常应用。服务器管理员分割咱们数据恢复核心进行数据恢复。
咱们数据恢复核心的服务器数据恢复工程师对服务器中所有磁盘进行物理检测和坏道检测,没有发现问题。
服务器数据恢复流程:
1、对故障服务器所有硬盘做镜像,以防在数据恢复过程中对原始数据造成二次毁坏。
备份的局部数据如下图:
2、服务器故障起因剖析:
目前初步理解的状况为基于 RAID 组的 LUN 有 6 个,均调配给 HP-Unix 小机应用,下层做的 LVM 逻辑卷,重要数据为 Oracle 数据库及 OA 服务端。一旦故障服务器中的某些磁盘性能不稳固,该型号服务器中的控制器会将其认为是坏盘的磁盘踢出 RAID 组。而一旦 RAID 组中掉线的盘达到 RAID 级别容许掉盘的极限,那么这个 RAID 将不可用,服务器瘫痪。
3、剖析服务器 RAID 组构造:
服务器的 LUN 都是基于 RAID 组的,要想复原服务器数据就须要先剖析底层 RAID 组的信息,而后依据剖析的信息重构原始的 RAID 组。服务器数据恢复工程师剖析所有硬盘后发现 4 号盘的数据同其余盘不太一样,初步认为是 hot Spare 盘。接着剖析其余数据盘,剖析 Oracle 数据库页在每个磁盘中散布的状况,并依据数据分布的状况获取到
RAID 组的条带大小,磁盘程序及数据走向等 RAID 组的重要信息。
4、剖析服务器 RAID 组掉线盘:
根据上述剖析的 RAID 信息,通过北亚自主开发的 RAID 虚构重组程序将原始的 RAID 组虚构进去。但因为整个 RAID 组中一共掉线两块盘,因而须要剖析这两块硬盘掉线的程序。仔细分析每一块硬盘数据,发现有一块硬盘在同一个条带上的数据和其余硬盘显著不一样,因而初步判断此硬盘可能是最先掉线的,通过北亚自主开发的 RAID 校验程序对这个条带做校验,最终确定最先掉线的硬盘。
5、剖析 RAID 组中的 LUN 信息:
因为 LUN 是基于 RAID 组的,因而须要根据上述剖析的信息将 RAID 组最新的状态虚构进去,而后剖析 LUN 在 RAID 组中的分配情况, 以及 LUN 调配的数据块 MAP。因为底层有 6 个 LUN,因而只须要将每一个 LUN 的数据块散布 MAP 提取进去,而后针对这些信息编写相应的程序,对所有 LUN 的数据 MAP 做解析,而后依据数据 MAP 导出所有 LUN 的数据。
导出的数据如下图:
6、服务器 LVM 逻辑卷及 VXFS 文件系统修复:
服务器数据恢复工程师剖析所有生成进去的 LUN,发现所有 LUN 中均蕴含 HP-Unix 的 LVM 逻辑卷信息。数据恢复工程师尝试解析每个 LUN 中的 LVM 信息,发现一共有三套 LVM:45G 的 LVM 中划分了一个 LV,寄存 OA 服务器端的数据;190G 的 LVM 中划分了一个 LV,寄存长期备份数据;残余 4 个 LUN 组成一个 2.1T 左右的 LVM,划分了一个 LV,寄存 Oracle 数据库文件。
服务器数据恢复工程师编写解释 LVM 的程序,尝试将每套 LVM 中的 LV 卷都解释进去,但发现解释程序出错。仔细分析程序报错的起因,开发工程师 debug 程序出错的地位,文件系统工程师对复原的 LUN 做检测,检测 LVM 信息是否会因存储瘫痪导致 LMV 逻辑卷的信息损坏。通过检测发现的确因为存储瘫痪导致 LVM 信息损坏。
尝试人工对损坏的区域进行修复,并同步批改程序,从新解析 LVM 逻辑卷。
搭建 HP-Unix 环境,将解释进去的 LV 卷映射到 HP-Unix,并尝试 Mount 文件系统,后果 Mount 文件系统出错。尝试应用“fsck –F vxfs”命令修复 vxfs 文件系统,修复后还是不能挂载。狐疑底层 vxfs 文件系统的局部元数据可能毁坏,须要进行手工修复。
仔细分析解析进去的 LV,并依据 VXFS 文件系统的底层构造校验此文件系统是否残缺。剖析发现底层 VXFS 文件系统果然有问题,原来存储瘫痪的同时此文件系统正在执行 IO 操作,因而导致局部文件系统元文件没有更新和损坏。数据恢复工程师对这些损坏的元文件进行手工修复,保障 VXFS 文件系统可能失常解析。再次将修复好的 LV 卷挂载到 HP-Unix 小机上,尝试 Mount 文件系统,文件系统没有报错,胜利挂载。
7、检测 Oracle 数据库文件并启动数据库:
在 HP-Unix 机器上 mount 文件系统后,将所有用户数据均备份至指定磁盘空间。所有用户数据大小在 1.2TB 左右。
局部文件目录截图如下:
应用 Oracle 数据库文件检测工具检测每个数据库文件是否残缺,没有发现错误。应用北亚自主研发的 Oracle 数据库检测工具检测,发现局部数据库文件和日志文件校验不统一,数据库数据恢复工程师对此类文件进行修复并校验,直到所有文件校验均齐全通过。
将复原进去的 Oracle 数据库附加到原始生产环境的 HP-Unix 服务器中,尝试启动 Oracle 数据库,Oracle 数据库启动胜利。
8、启动 Oracle 数据库,启动 OA 服务端,在本地电脑上装置 OA 客户端。通过 OA 客户端对最新的数据记录以及历史数据记录进行验证,并且有安顿不同部门人员进行近程验证。最终数据验证无误,数据残缺,数据恢复胜利。