服务器数据恢复—硬盘掉线导致热备盘同步失败的RAID5阵列数据恢复案例

news2025/1/16 14:47:56

服务器存储数据恢复环境:
华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。

服务器存储故障:
RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。

服务器存储数据恢复过程:
1、将故障存储中所有磁盘做好标记后取出。硬件工程师对所有磁盘做物理故障检测,没有发现有硬盘存在硬件故障,都可以正常读取。将所有磁盘以只读方式进行扇区级全盘镜像,在镜像过程中没有发现有磁盘存在大量坏道。镜像完成后将所有磁盘按照原样还原到原存储中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。由于没有检测到有磁盘存在物理故障或者大量坏道,基本上可以判断某些硬盘离线的原因就是磁盘读写不稳定。故障存储raid控制器通常会将性能不稳定的磁盘识别为坏盘,并踢出RAID。一旦RAID中掉线的磁盘数据超过该RAID级别所允许掉盘的最大数量,该RAID将不可用,基于RAID的LUN也不可用。
2、基于镜像文件分析所有硬盘底层数据。分析底层RAID相关信息,根据分析获取到的raid信息重组RAID。RAID重建完成后,分析Oracle数据库页在每个磁盘中分布的情况。
3、由于RAID中有两块盘掉线且有一块硬盘数据被同步破坏。分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,初步判断此硬盘可能是被同步破坏的硬盘。通过北亚企安自主开发的RAID校验程序对这个条带做校验,确认该盘就是被同步损坏的盘。
4、分析LUN在RAID中的分配情况以及LUN分配的数据块MAP。将LUN的数据块MAP提取出来,北亚企安数据恢复工程师编写相应程序解析LUN的数据块MAP,然后根据数据块MAP导出LUN的数据。
5、由于是使用热备盘重组RAID,EXT3文件系统无法正常挂载,所以只能先提取oracle数据库文件,利用北亚企安自主开发的文件系统解析程序对其进行文件系统解析,导出oracle数据库文件。
6、使用Oracle数据库文件检测工具检测每个数据库文件的完整性,经过检测发现有错误。使用北亚企安自主研发的Oracle数据库检测工具检测。经过检测发现部分数据库文件和日志文件错误:system和sysaux表空间存在上百个坏块,3个控制文件存在大量坏块,eschoolspace表空间的3个文件中的坏块多达上千个,undotbs02.dbf丢失。北亚企安数据库工程师对这些损坏的文件进行修复。

7、创建控制文件和undo表空间,启动数据库到mount。system数据文件坏块导致数据库无法打开,各种隐含参数也不能绕过system的坏块。搭建数据库环境,使用dmp文件还原数据库,但是某个日期之后的数据导入报错,只能导入这个日期之前的数据。

由于故障发生后又对RAID进行了重建,导致一块盘的数据被同步破坏。在第二块盘离线之前,热备盘已经同步了一段时间,已经写入了部分数据,所以使用热备盘中的数据只能恢复某个日期之前的数据。
8、在用户方的配合下启动Oracle数据库。在本地虚拟机安装OA客户端,通过OA客户端对数据记录进行验证,并且安排不同部门人员进行远程验证。
9、经过用户方验证,确认恢复出来的数据有效,认可数据恢复结果。没有恢复出来的数据量比较少,可以通过其他方式人工补回来。

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

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

相关文章

2024年12月HarmonyOS应用开发者基础认证全新题库

注意事项:切记在考试之外的设备上打开题库进行搜索,防止切屏三次考试自动结束,题目是乱序,每次考试,选项的顺序都不同 更新时间:2024年12月3日 这是基础认证题库,不是高级认证题库注意看清楚标…

docker修改并迁移存储至数据盘

文章目录 前言一、操作步骤(需要root权限)1. 查看磁盘占用,查看当前docker目录占用的空间2. 查看正在运行的容器,并停止容器及服务3. 拷贝数据、修改配置(关键步骤)4. 加载配置,启动服务及容器 …

n的阶乘(c++)

#include<stdio.h> int jiecheng(int n) { if(n1||n0) { return 1; } return(n*jiecheng(n-1)); } int main(void){ int n 0; printf("请输入您要计算的数字\n"); scanf("%d",&n); printf("%d\n",jiecheng(n)); return 0; }

MyBatis系列之自定义TypeHandler实现字段加密解密

文章目录 前言一、TypeHandler接口二、实现总结 前言 今天简单介绍利用MyBatis的TypeHandler接口实现字段的加解密。 字段的加密和解密&#xff0c;实现方式确实有好几种。比如&#xff0c;在业务层实现、在数据库层面实现等等&#xff0c;但是这些相对来说&#xff0c;耦合性…

C总结(C语言知识点,深化重难点)

C语言 1.使用C语言的7个步骤2.ASCII码3.提高程序可读性的机巧4.如何使用多种整形5.打印多种整形6.课移植类型&#xff1a;stdint.h和inttypes.h7.浮点数常量8.浮点值的上溢和下溢9.使用数据类型11.常量和C预处理器12.转换说明的意义12.1转换不匹配13.副作用和序列点14.数组简介…

JavaScript编写css自定义属性

一、自定义属性 是在 CSS 中定义的变量&#xff0c;以 --开头。它们可以存储颜色、尺寸、字体等任何 CSS 值&#xff0c;并且可以在整个文档中重复使用。 :root {--primary-color: #3498db;--font-size: 16px; }body {color: var(--primary-color);font-size: var(--font-siz…

【机器学习】任务十一:Keras 模块的使用

1.Keras简介 1.1 什么是Keras&#xff1f; Keras 是一个开源的深度学习框架&#xff0c;用 Python 编写&#xff0c;构建于 TensorFlow 之上。它以简单、快速和易于使用为主要设计目标&#xff0c;适合初学者和研究者。 Keras 提供了高层次的 API&#xff0c;帮助用户快速构…

02_Node.js模块化

02_Node.js模块化 知识点自测 以下代码运行的结果是多少&#xff1f; const arr [10, 20, 30] const result arr.map(val > val 1).reduce((sum, val) > sum val, 0) console.log(result) A&#xff1a;60 B&#xff1a;63 <details><summary>答案</…

故障识别 | GADF-CNN-SSA-XGBoost数据分类预测/故障识别(Matlab)

故障识别 | GADF-CNN-SSA-XGBoost数据分类预测/故障识别&#xff08;Matlab&#xff09; 目录 故障识别 | GADF-CNN-SSA-XGBoost数据分类预测/故障识别&#xff08;Matlab&#xff09;分类效果基本描述程序设计参考资料 分类效果 基本描述 格拉姆角场差&#xff08;GADF&#…

OPenCV 图片局部放大

m_image cv::imread("C:/Code/JPG/1.jpg");if (m_image.empty()) return;cv::imshow("原始图像", m_image); // TODO: 在此添加控件通知处理程序代码int width m_image.cols;int height m_image.rows;// 确定要放大的区域&#xff08;这里是图像中心部分…

【C++】变长参数

文章目录 1. 定义&#xff1a;2. C代码示例:2.1 实现方式一&#xff1a;2.2 实现方式二&#xff1a;2.3 实现方式三&#xff1a; 3. 总结3.1 使用...语法&#xff1a;3.2 使用 std::initializer_list3.3 使用变长模板参数&#xff08;Variadic Templates&#xff09; 1. 定义&a…

内网穿透 natapp安装与使用

前言 NATAPP是一款基于ngrok的内网穿透工具。以下是对NATAPP的详细概述&#xff1a; 基本概念 定义&#xff1a;内网穿透&#xff08;NAT穿透&#xff09;是一种技术&#xff0c;它允许具有特定源IP地址和端口号的数据包能够绕过NAT设备&#xff0c;从而被正确地路由到内网主机…

TPAMI 2023:When Object Detection Meets Knowledge Distillation: A Survey

摘要 目标检测&#xff08;Object Detection&#xff0c;OD&#xff09;是计算机视觉中的一项关键任务&#xff0c;多年来涌现出了众多算法和模型。尽管当前 OD 模型的性能有所提升&#xff0c;但它们也变得更加复杂&#xff0c;由于参数规模庞大&#xff0c;在工业应用中并不…

怎么样能使Ubuntu的文件浏览器显示当前目录的路径,而不是只显示一个文件名?

默认情况下Ubuntu的文件浏览器是只显示当前目录的目录名的&#xff0c;这很不便我们查看路径或直接利用路径进行定位&#xff0c;那么怎么样能使Ubuntu的文件浏览器显示当前目录的路径呢&#xff1f; 两种方法&#xff1a; 第1种-临时方法 按下快捷键 Ctrl L&#xff0c;导航…

Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码)

Uniapp Android SpringBoot3 对接支付宝支付&#xff08;最新教程附源码&#xff09; 1、效果展示2、后端实现2.1 引入支付宝SDK依赖 pom.xml2.2 配置 application.yml2.3 支付宝相关代码2.3.1 AlipayConfig.java2.3.2 ZfbPayConfig.java2.3.3 支付接口2.3.4 支付回调处理接口&…

阿里云ECS服务器域名解析

阿里云ECS服务器域名解析&#xff0c;以前添加两条A记录类型&#xff0c;主机记录分别为www和&#xff0c;这2条记录都解析到服务器IP地址。 1.进入阿里云域名控制台&#xff0c;找到域名 ->“解析设置”->“添加记录” 2.添加一条记录类型为A,主机记录为www&#xff0c…

【MySQL】mysql服务器架构

目录 1、背景2、mysql服务器架构解释3、总结 1、背景 简单理解一下mysql的服务器架构。 2、mysql服务器架构解释 mysql的架构图如下&#xff1a; 主要分为三部分&#xff1a;客户端、服务端、存储引擎。接下来我们来解释一下各个部分&#xff1a; 客户端 用来连接mysql服务…

BERT模型的输出格式探究以及提取出BERT 模型的CLS表示,last_hidden_state[:, 0, :]用于提取每个句子的CLS向量表示

说在前面 最近使用自己的数据集对bert-base-uncased进行了二次预训练&#xff0c;只使用了MLM任务&#xff0c;发现在加载训练好的模型进行输出CLS表示用于下游任务时&#xff0c;同一个句子的输出CLS表示都不一样&#xff0c;并且控制台输出以下警告信息。说是没有这些权重。…

基于LSTM的A股股票价格预测系统(torch) :从数据获取到模型训练的完整实现

1. 项目简介 本文介绍了一个使用LSTM&#xff08;长短期记忆网络&#xff09;进行股票价格预测的完整系统。该系统使用Python实现&#xff0c;集成了数据获取、预处理、模型训练和预测等功能。 这个代码使用的是 LSTM (Long Short-Term Memory) 模型&#xff0c;这是一种特殊的…

【ArcGIS微课1000例】0134:ArcGIS Earth实现二维建筑物的三维完美显示

文章目录 一、加载数据二、三维显示三、三维符号化一、加载数据 加载配套实验数据(0134.rar中的建筑物,2d或3d都可以),方法如下:点击添加按钮。 点击【Add Files】,在弹出的Open对话框中,选择建筑物,点击确定,完成添加。 默认二维显示: 二、三维显示 右键建筑物图层…