服务器数据恢复—RAID5故障导致SAP+oracle数据丢失的数据恢复案例

服务器存储数据恢复环境:
某品牌服务器存储中有一组由6块SAS硬盘组建的RAID5阵列,其中有1块硬盘作为热备盘使用。上层划分若干lun,存放Oracle数据库数据。

服务器存储故障&分析:
该RAID5阵列中一块硬盘出现故障离线,热备盘自动激活替换故障硬盘,热备盘同步数据的过程中该raid5阵列中又有一块硬盘出现故障,RAID5阵列瘫痪,上层LUN无法正常访问。
因为本案例中存储控制器的磁盘检查策略严格,一旦某些磁盘性能不稳定,该型号存储控制器就将该块磁盘识别为坏盘,并将该块磁盘踢出RAID。一旦RAID中掉线的盘数到超过RAID级别允许掉盘的最大数量,该RAID将不可用,上层基于RAID的LUN也无法访问,从而导致重要数据丢失。

服务器数据恢复过程:
1、将故障服务器存储中所有磁盘编号后取出,由硬件工程师对所有磁盘做物理故障检测,经过检测发现有一块硬盘存在物理故障,其他硬盘没有发现明显物理故障。将所有完好磁盘以只读方式进行扇区级全盘镜像。针对那块故障磁盘,由专业工具处理后做镜像。镜像完成所有磁盘后,按照编号将所有磁盘还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。


2、分析RAID组结构
该品牌服务器存储的LUN是基于RAID的。北亚企安数据恢复工程师基于镜像文件分析底层RAID的信息,通过分析找到了热备盘。继续分析其他硬盘的底层数据,分析Oracle数据库页在每个磁盘中分布的情况,并根据数据分布的情况得出RAID组的条带大小,磁盘顺序及数据走向等RAID的重要信息,然后根据分析获取到的信息虚拟重构原RAID。
3、完成重组raid后,分析LUN在RAID中的分配情况,以及LUN分配的数据块MAP。只需要将LUN的数据块分布MAP提取出来,然后针对这些信息编写相应的程序,解析LUN的数据MAP,然后根据数据MAP导出LUN的数据。
4、服务器存储数据恢复方案:
a、数据恢复实施方案一
将Oracle数据库数据所在的LUN进行JFS2文件系统解析,人工修复文件系统不完整的地方。利用北亚企安自主开发的JFS2文件系统解析工具解析恢复的LUN,恢复文件系统中所有的Oracle数据库文件,并检测Oracle数据库文件的完整性。
针对检测出有坏块的数据库文件,扫描所有磁盘中的Oracle数据页碎片,组合扫描出来的数据页,通过人工将有坏块的数据库文件填补修复完整。
在恢复完所有Oracle数据库之后,发现其上层应用SAP还是无法使用。SAP应用的一些重要数据存放在损坏的存储中,如果缺失这些数据,SAP即使在数据库完整的情况下也无法正常使用,因此还需通过方案二来恢复所有SAP的重要数据。
b、数据恢复实施方案二
对恢复的所有LUN都进行文件系统解析,并将存放SAP的数据LUN做文件系统一致性检测。对文件系统不完整的部分通过人工进行修复,恢复所有SAP及SAP Test的数据。
检测SAP数据,并修复损坏的SAP数据,确保恢复出来的所有SAP数据均完整,这样才能保证SAP应用启动。
结合恢复出来的SAP数据和数据库,启动SAP及所有应用即可。
5、启动并修复Oracle数据及SAP应用
a、启动数据库并修复
将恢复出来的数据库文件还原到搭建好的环境中,尝试启动数据库。由于数据库的一些临时文件校验不一致导致数据库启动失败。Oracle数据库工程师对数据库进行修复后,数据库启动没有问题,数据库中的所有用户及所有表均完整,尝试启动SAP。


b、启动SAP并修复
将恢复出来的SAP文件还原到已搭建好的环境中,并按照之前的启动脚本启动SAP,SAP启动正常,但SAP中用户权限及使用不正常,SAP表现为没有序列号。数据恢复工程师怀疑SAP的注册文件没有恢复出来。重新检测恢复过程,排查可能疏忽的步骤,最后查明文件系统的损坏导致某些文件没有恢复。重新修复文件系统&恢复这些数据。启动SAP正常,SAP使用正常。
6、由用户方配合,启动Oracle数据库,启动SAP,并通过SAP客户端验证SAP中所有的数据的完整性,经过验证,用户方确认数据完整有效,SAP正常使用。本次数据恢复工作完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637000.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024化工制造企业数字化白皮书

来源:蓝凌研究院 中国石油和化学工业联合会发布2023年中国石油和化工行业经济运行情况。数据显示,2023年,我国石化行业实现营业收入15.95万亿元, 同比下降1.1%,利润总额8733.6亿元,行业经济运行总体呈现低…

Jolt Json转换工具的基础教程

Jolt Json转换工具 jolt是一个轻量级的json文件转换库,可以把输入的json按照你编写脚本模板输出成你想要的json文本,能实现同样功能的有我们常用的velocity模板引擎,但jolt跟轻量且更专注于json,且在实现一些简单的格式转换中&am…

springboot no mapping for.....解决办法

这个问题是由于没有加入对应的GET,POST注解,导致映射失败,加入对应注解就ok了

【C++程序员的自我修炼】初识模板

云收天彩色 木叶落秋声 目录 函数模板 函数模板的实现 函数模板的实例化 模板参数的匹配原则 参数模板推不出来的情况 类模板 类模板的定义格式 类模板的实例化 契子 ✨ 我们在学 C语言 的时候应该都写过交换两个数的函数 swap 吧 当时我们只是写了 int 类型,那…

【JAVA】实现只有一个窗口弹出的底层逻辑——单身模式

目录 背景说明 代码实现 手写笔记 背景说明 有的时候,当你点击一个选项时会弹出来多个窗口,而有的时候只会弹出一个。 实际上,弹出多个窗口就是创建了多个相同的对象,而只弹出一个就是我们今天即将分享的单身模式——一个类只产生…

5.Eureka原理分析

消费者如何获取服务提供者具体信息? 1.服务提供者启动时向Eureka注册自己的信息。 2.Eureka保存这些信息。 3.消费者根据服务名称向Eureka拉取提供者信息。 如果有多个服务的提供者,消费者该如何选择? 1.服务消费者利用负载均衡算法&…

ardunio中自定义的库文件

1、Arduino的扩展库都是放在 libraries目录下的。完整路径为:C:\Users\41861\AppData\Local\Arduino15\libraries 所以我们需要在这个目录下创建一个文件夹,比如上面的例子是esp32上led灯控制程序,于是我创建了 m_led文件夹(前面加…

web前端(简洁版)

0. 开发环境 && 安装插件 这里我使用的是vscode开发环境 Auto Rename Tag是语法自动补齐view-in-browser是快速在浏览器中打开live server实时网页刷新 1. HTML 文件基本结构 <html><head><title>第一个页面</title></head><body&g…

存储过程的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中&#xff0c;经常会需要查询数据库中已有的存储过程或者某一个存储过程的内容&#xff0c; 下面就介绍-下如何查询存储过程。 这需要使用到数据字典 user_sou…

关系型数据库的相关概念

表、记录、字段 表 一个实体集相当于一个表记录 一个实体相当于一个记录&#xff0c;在表中表表现为一行数据字段 一个字段相当于数据库表中的列 表的关联关系 一对一(一对一的表可以合并成一张表)一对多多对多 必须创建第三张表&#xff0c;该表通常称为联接表&#xff0c…

实现联系人前后端界面,实现分页查询04.15

实现联系人前后端界面&#xff0c;实现分页查询项目包-CSDN博客 项目结构 数据库中建立两个表&#xff1a; 完整的后端目录 建立联系人People表&#xff0c;分组Type表&#xff0c;实现对应实体类 根据需求在mapper中写对应的sql语句 查询所有&#xff0c;删除&#xff0c;添…

从国九条的颁布简单看待未来的因子轮动

上周4月12日《关于加强监管防范风险推动资本市场高质量发展的若干意见》又称国九条出台后&#xff0c;除了本周五中东局势对大盘的影响&#xff0c;本周一波三折的行情很大程度上都是围绕着国九条展开的。一个很有意思的现象是前两次国九条发布后&#xff0c;市场都诞生了波澜壮…