服务器数据恢复- 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,一经查实,立即删除!

相关文章

Vue 组件中如何引入外部的js文件 的10种方法

在Vue组件的<script>标签中使用import语句引入外部的JavaScript文件&#xff0c;适用于单个组件需要使用外部JavaScript文件的情况。这种方法可以在编译时静态地引入外部文件&#xff0c;并且可以通过import语句的路径指定具体的文件位置。 在Vue组件的<script>标…

设计模式-适配器

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

Spring工具类--Assert的使用

原文网址&#xff1a;Spring工具类--Assert的使用_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Spring的Assert工具类的用法。 Assert工具类的作用&#xff1a;判断某个字段&#xff0c;比如&#xff1a;断定它不是null&#xff0c;如果是null&#xff0c;则此工具类会报…

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

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解Spark的梯度下降法&#xff1b; ⚪ 了解Spark的梯度下降法家族&#xff08;BGD&#xff0c;SGD&#xff0c;MBGD&#xff09;&#xff1b; ⚪ 掌握Spark的MLlib实现…

ChatGPT和文心一言的优缺点比较

ChatGPT和文心一言都是自然语言生成技术的代表&#xff0c;下面是它们的优缺点比较&#xff1a; ChatGPT的优点&#xff1a; 自由度高&#xff1a;ChatGPT生成的文本与给定的话题没有紧密的关联&#xff0c;可以灵活地生成多种不同的文本。多样性高&#xff1a;ChatGPT可以生…

Vue生命周期(详细)

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

【单片机】单片机入门指南

一、概述 单片机&#xff08;Microcontroller&#xff0c;简称MCU&#xff09;是一种集成了微处理器、存储器、时钟、IO端口和外设接口等的集成电路芯片。它可以通过编程实现各种控制、运算等功能&#xff0c;常用于自动化控制、家电、智能仪表等领域。 二、单片机的种类和选…

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

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

Docker及常用数据库安装

Docker安装常用数据库 1、Docker安装2、Mysql安装3、Redis安装4、DM安装5、Oracle安装1、Docker安装 1、确保 yum 包更新到最新yum update2、卸载旧版本(如果安装过旧版本的话)yum remove docker docker-common docker-selinux docker-engine3、安装需要的软件包, yum-util 提…

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

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

图:有向无环图(DAG)

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

【前端入门案例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;用户就可以随时终…

Linux系列讲解 —— 【systemd】下载及编译记录

Ubuntu18.04的init程序合并到了systemd中&#xff0c;本篇文章记录一下systemd的下载和编译。 1. 下载systemd源码 (1) 查看systemd版本号&#xff0c;用来确定需要下载的分支 sunsun-pc:~$ systemd --version systemd 237 PAM AUDIT SELINUX IMA APPARMOR SMACK SYSVINIT UT…

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…

传统三维重建和深度学习三维重建 MVS笔记总结、问题总结

什么是cost-volume ?(代价体) 什么是置信度?置信区间? pixel-wise,patch-wise,image-wise的区别 图像 4领域-8领域-16领域 及代码实现 文章目录 1 plane-sweeping2 传统三维重建深度学习三维重建有何不同呢?3 大型场景重建4 PMVS-精确、密集、鲁棒的多视图立体视觉…

Revit SDK:AutoParameter 添加参数

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