服务器数据恢复环境:
华为OceanStor某型号存储,存储内有一组由24块硬盘组建的raid5阵列,配置1块热备盘。
服务器故障:
该存储raid5阵列中有一块硬盘离线,热备盘自动激活并开始同步数据,在热备盘同步数据的过程中,raid5阵列中另一块硬盘离线,上层应用崩溃,数据丢失。
服务器数据恢复过程:
1、将该存储中所有硬盘编号后取出,硬件工程师对所有硬盘进行硬件故障检测,经过检测发现raid5中只有1块硬盘存在硬件故障,其他硬盘可正常读取。将完好硬盘以只读方式进行全盘镜像,镜像完成后按照编号将所有磁盘还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
由于本案例所使用的raid控制器对磁盘检测策略比较严格,通常会将无物理故障但性能不稳定的硬盘识别为坏盘并踢出raid阵列。之前硬件工程师只检测到一块硬盘有物理故障,另外一块掉线盘应该是因为读写不稳定被踢出阵列掉线。
2.、基于镜像文件分析每块硬盘的底层数据,获取到条带大小、数据走向、盘序、热备盘、数据库的分布规律等raid相关信息。根据获取到的raid5相关信息虚拟重组raid5阵列。
3、在重组raid5阵列的过程中发现有一块硬盘在相同条带上的数据与其他硬盘的明显不同,该硬盘进行条带校验后确认该硬盘被同步破坏。
4、重组raid5阵列后,数据恢复工程师分析lun在raid5阵列中的分配情况及数据块map。将map提取出来后通过北亚企安自研数据恢复程序解析&恢复lun数据。
5、北亚企安数据恢复工程师编写文件系统解析程序对虚拟重组出来的raid5阵列中的文件系统进行解析,导出数据库文件后交由数据库工程师进行校验和修复。
6、数据库工程师对数据库文件进行验证后发现部分数据库文件和日志文件异常,表空间内存在大量坏块,所有控制文件被破坏,undotbs02丢失。数据库工程师对数据库文件进行修复。
数据库文件修复过程:
7、经过数据库工程师对数据库文件的修复和验证,终于成功恢复数据库数据。数据恢复工程师将修复好的数据库数据导入准备好的环境中进行验证,经过验证所有数据均正常。用户方工程师对数据进行验证也没有发现异常。本次服务器数据恢复工作完成。