RAID5故障情况下的Oracle数据库恢复案例
最新动态来源:本站原创点击数:301更新时间:2023/9/13
服务器数据恢复环境:
华为OceanStor某型号存储,11块硬盘组建了一组RAID5阵列,另外1块硬盘作为热备盘使用。基于RAID5阵列的LUN分配给linux系统使用,存放Oracle数据库。
服务器故障:
RAID5阵列1块硬盘由于未知原因离线,热备盘激活开始同步数据,在热备盘同步的过程中又有1块硬盘离线,RAID5阵列瘫痪,上层LUN无法正常使用。
服务器数据恢复过程:
1、将故障存储中所有磁盘编号后取出。由于故障原因是RAID阵列中磁盘掉线,所以先将所有磁盘做物理故障检测,经过检测发现只有1块硬盘存在物理故障,其他硬盘完好。
2、以只读方式将所有磁盘做全盘镜像,镜像完成后将所有磁盘按照编号还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
3、基于镜像文件分析RAID5阵列结构相关信息(条带大小,磁盘顺序、数据走向等)并找到热备盘。
4、根据分析获取到的RAID结构相关信息,使用北亚企安自主开发的RAID虚拟程序虚拟重构原RAID5阵列。由于该RAID5阵列中有两块盘掉线并且有一块硬盘数据被同步损坏。经过分析硬盘数据,数据恢复工程师发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,初步判断此硬盘是被同步损坏的硬盘。通过北亚企安自主开发的RAID校验程序对这个条带做校验,确定这块盘就是被同步损坏的磁盘。
5、华为OceanStor存储的LUN是基于RAID阵列的。分析LUN在RAID5阵列中的分配情况和LUN分配的数据块MAP。将LUN的数据块分布MAP提取出来后,北亚企安数据恢复工程师针对这些信息编写相应的程序解析LUN的数据MAP,然后根据数据MAP导出LUN的数据。
6、由于是使用热备盘虚拟的RAID,无法正常挂载EXT3文件系统。数据恢复工程师只能提取oracle数据库文件,利用北亚企安自主开发的EXT3文件系统解析程序对其进行文件系统的解析,然后导出oracle数据库文件,并把数据库文件移交给数据库工程师进行校验和验证。
7、使用Oracle数据库文件检测工具检测每个数据库文件的完整性,再使用北亚企安自主研发的Oracle数据库检测工具(检验更严格)进行检测,经过检测发现有部分数据库文件和日志文件错误, system 和sysaux表空间都存在坏块;3个控制文件也存在许多坏块,控制文件全部损坏;
eschoolspace表空间的3个文件发现有大量坏块;undotbs02丢失;数据库工程师对这些文件进行修复。修复完成后将数据导入到搭建好的数据库环境。
8、由用户方配合,启动Oracle数据库,在本地虚拟机安装OA客户端。通过OA客户端对数据记录进行验证,并且由用户安排不同部门人员进行远程验证。经过验证,确认恢复出来的数据完整可用。本次数据恢复工作完成。