百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

服务器数据恢复—基于oracle数据库的SAP数据恢复案例

sinye56 2024-10-13 08:48 25 浏览 0 评论

服务器存储数据恢复环境:

某品牌服务器存储中有一组由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正常使用。本次数据恢复工作完成。

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: