服务器数据恢复- RAID5出现故障后恢复数据和操作系统的案例

服务器数据恢复环境:
某品牌服务器中有4块SAS硬盘组建了一组RAID5阵列,另外1块磁盘作为热备盘使用。上层操作系统为redhat linux,部署了一个数据库是oracle的OA。

服务器故障&初检:
RAID5中一块磁盘离线后热备盘未自动激活rebuild,之后另外一块磁盘离线,RAID5阵列崩溃。因为oracle已经不再对服务器中部署的oa提供后续支持,用户联系我们数据恢复中心要求恢复数据和复原操作系统。
将故障服务器中所有磁盘编号后取出,由硬件工程师对所有磁盘进行检测。经过检测发现热备盘根本没有启用,不存在物理故障,无明显同步表现。

服务器数据恢复&操作系统复原过程:
1、将故障服务器中所有磁盘以只读方式做完整镜像,镜像过程中发现后离线的磁盘有十几个坏扇区,其余磁盘均没有发现有坏道。镜像完成后将所有磁盘按照编号还原到原服务器中,后续的数据分析和数据恢复都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析RAID5结构信息,获取到盘序,块大小,backward parity(Adaptec)等RAID相关信息。

3、根据上一步获取到的RAID相关信息虚拟重组RAID并验证数据,发现200M以上的压缩包解压无报错,确定结构正确。
4、按照此RAID结构生成虚拟RAID到一块单硬盘上,打开文件系统没有发现明显报错。
5、得到用户授权后在原盘重建RAID(重建时已经用全新硬盘更换发现坏道的后离线磁盘)。
6、将恢复好的单盘用USB方式接入故障服务器,用linux SystemRescueCd启动故障服务器,然后使用dd命令全盘回写。
7、回写完成后启动操作系统,但是无法进入系统,报错信息为:/etc/rc.d/rc.sysinit:Line 1:/sbin/pidof:Permission denied。
8、怀疑此文件权限有问题,用SystemRescueCd重启后检查,此文件时间,权限,大小均有明显错误,显然是节点损坏导致的错误。
9、重新分析重组数据中的根分区,定位出错的/sbin/pidof,发现错误是由后离线的那块磁盘上的坏道所引起。
10、使用完好的3块盘对后离线的那块盘的损坏区域进行xor补齐。补齐后重新校验文件系统仍然出现错误。再次检查inode表,发现后离线磁盘损坏区域有部分节点表现异常。

虽然节点中描述的uid正常存在,但属性,大小和最初的分配块都是错误的。按照所有可能进行分析,但是没有找到方法找回此损坏节点。只能试图修复此节点或复制一个相同的文件过来。
11、针对所有可能存在错误的文件,北亚企安数据恢复工程师通过日志确定原节点块的节点信息,然后做修正。
12、修正后重新dd根分区,执行fsck -fn /dev/sda5依然报错。

根据报错信息,北亚企安数据恢复工程师在系统中发现有多个节点共用同样的数据块。按此提示分析底层,发现存在节点信息的新旧交集。
13、按照节点所属的文件进行区分,清除错误节点后再次执行fsck -fn /dev/sda5,依然有少量报错。根据报错信息,发现这些节点多位于doc目录下,不影响系统启动,于是直接执行fsck -fy /dev/sda5强行修复。
14、修复完成后重启系统,成功进入系统桌面。
15、启动oracle数据库服务,启动OA,一切正常无报错。
16、由用户方对恢复的操作系统和数据(OA和oracle数据库)进行检测,经过用户方多方检测,确认恢复数据完整有效。本次数据恢复工作完成。

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

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

相关文章

设计模式-适配器

文章目录 一、简介二、适配器模式基础1. 适配器模式定义与分类2. 适配器模式的作用与优势3.UML图 三、适配器模式实现方式1. 类适配器模式2. 对象适配器模式3.类适配器模式和对象适配器模式对比 四、适配器模式应用场景1. 继承与接口的适配2. 跨平台适配 五、适配器模式与其他设…

大数据课程K16——Spark的梯度下降法

文章作者邮箱:yugongshiyesina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的梯度下降法; ⚪ 了解Spark的梯度下降法家族(BGD,SGD,MBGD); ⚪ 掌握Spark的MLlib实现…

Vue生命周期(详细)

生命周期 图: 可以理解vue生命周期就是指vue实例从创建到销毁的过程,在vue中分为8个阶段:创建前/后,载入前/后,更新前/后,销毁前/后。 一、创建(实例) 1、beforeCreate&#xff1a…

C语言每日一练-------Day(9)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:字符个数统计 多数元素 投票法 💓博主csdn个人主页&#xf…

基于Stable Diffusion的AIGC服饰穿搭实践

本文主要介绍了基于Stable Diffusion技术的虚拟穿搭试衣的研究探索工作。文章展示了使用LoRA、ControlNet、Inpainting、SAM等工具的方法和处理流程,并陈述了部分目前的实践结果。通过阅读这篇文章,读者可以了解到如何运用Stable Diffusion进行实际操作&…

图:有向无环图(DAG)

1.有向无环图的定义 有向无环图:若一个有向图中不存在环,则称为有向无环图。 简称DAG图(Directed Acyclic Graph) 顶点中不可能出现重复的操作数。 2.有向无环图的应用 1.描述算数表达式 用有向无环图描述算术表达式。 解题步骤: 把各个操作数不重…

【前端入门案例1】HTML + CSS

案例一 <!DOCTYPE html> <html lang"en-US"><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width"><title>My test page</title> </head><body><…

word6 图文混排

目录 7-1 段落缩进排版7-2 搞定多级列表难题 7-1 段落缩进排版 段落对齐 缩进问题 悬挂缩进&#xff1a;缩进首行以外的段落 段落对齐&#xff1a; 7-2 搞定多级列表难题

【Python从入门到进阶】34、selenium基本概念及安装流程

接上篇《33、使用bs4获取星巴克产品信息》 上一篇我们介绍了如何使用bs4来解析星巴克网站&#xff0c;获取其产品信息。本篇我们来了解selenium技术的基础。 一、什么是selenium&#xff1f; Selenium是一种用于自动化Web浏览器操作的开源工具。它提供了一组API&#xff08;应…

Spring Cloud Foundry上使用通配符模式匹配进行的安全绕过漏洞 CVE-2023-20873

文章目录 0.前言1.参考文档2.基础介绍描述如果满足以下任一条件&#xff0c;应用程序就不会有太大风险&#xff1a;受影响的Spring产品和版本 3.解决方案3.1. 升级版本3.2. 替代方案 0.前言 背景&#xff1a;公司项目扫描到 Spring Cloud Foundry上使用通配符模式匹配进行的安全…

Qt应用开发(基础篇)——进度对话框 QProgressDialog

一、前言 QProgressDialog类继承于QDialog&#xff0c;是Qt设计用来反馈进度的对话框。 对话框QDialog QProgressDialog提供了一个进度条&#xff0c;表示当前程序的某操作的执行进度&#xff0c;让用户知道操作依旧在激活状态&#xff0c;配合按钮&#xff0c;用户就可以随时终…

15.CSS发光按钮的悬停特效

效果 源码 <!DOCTYPE html> <html> <head><title>CSS Modern Button</title><link rel="stylesheet" type="text/css" href="style.css"> </head> <body><a href="#" style=&quo…

Revit SDK:AutoParameter 添加参数

前言 这个例子介绍如果往族文件里添加参数。 内容 Revit 的参数&#xff0c;参考官方文档&#xff1a; 这个例子的关键接口&#xff1a; // 通过 FamilyManager 添加参数 FamilyParameter AddParameter(string parameterName, BuiltInParameterGroup parameterGroup, Categ…

C++ 学习之 构造函数 和 析构函数

前言 总的来说&#xff0c;构造函数负责对象的初始化&#xff0c;而析构函数负责对象的清理和资源释放。它们是C面向对象编程中非常重要的概念&#xff0c;用于管理对象的生命周期&#xff0c;确保对象在创建和销毁时都能够正确地进行初始化和清理。 正文 看代码 class perso…

【Java 基础篇】Java 方法使用详解:让你轻松掌握方法的奥秘

如果你正在学习Java编程&#xff0c;方法是一个不可或缺的重要概念。方法允许你将代码组织成可重用的块&#xff0c;提高了代码的可维护性和可读性。在本篇博客中&#xff0c;我们将深入探讨Java方法的使用&#xff0c;从基础概念开始&#xff0c;逐步介绍如何定义、调用、传递…

深度图相关评测网站

文章目录 1 单目/Stereo相关测评网站介绍12 单目/Stereo相关测评网站介绍23 单目/Stereo相关测评网站介绍3 1 单目/Stereo相关测评网站介绍1 https://vision.middlebury.edu/stereo/eval3/ 2 单目/Stereo相关测评网站介绍2 http://www.cvlibs.net/datasets/kitti/eval_stereo…

[dasctf]misc1

不确定何种加密方式 P7NhnTtPUm/L3rmkP/eAhx5Vnbc2YyatkXCePJ0Wh2NYfqXGZCpZdCesMmEAihhUYI1PjoLq6FedZ7MSclA9h0/Dy4CavBwVg5RHr8XJmfbtuWkxK2Gn3sNTEzQi0p 1t_15_s3cR3t_k3y 也许是密钥

自动化测试(四):pytest结合allure生成测试报告

Allure 报告框架的名称 allure&#xff1a; noun [ U ] 诱惑;魅力;吸引力 文章目录 1. allure下载2. pytest框架使用allure3. 生成allure报告 1. allure下载 下载前需要先安装JDK&#xff0c;这里可以参考自动化测试(二)。 Allure下载路径&#xff1a;https://github.com/allu…

【数据结构】队列---C语言版(详解!!!)

文章目录 &#x1f438;一、队列的概念及结构&#x1f344;1、队列的概念定义&#x1f344;2、动图演示 &#x1f438;二、队列的实现&#x1f438;三、链表结构队列详解&#x1f34e;创建队列的结构⭕接口1&#xff1a;定义结构体&#xff08;QNode、Queue&#xff09;⭕接口2…

漏洞发现-web应用发现探针类型利用(43)

关于在真实环境下面&#xff0c;这个漏洞该如何发现 这里老师把它分成了三块第一类是 #已知cms 如常见的dedecms&#xff0c;discuz&#xff0c;wordpress等源码结构&#xff0c;这些都是网上比较知名的php源码的cms的名称&#xff0c;这是我们在国内常见的几个程序&#xf…