服务器数据恢复—多块磁盘离线导致阵列瘫痪,上层lun不可用的数据恢复案例

news2024/11/24 9:31:25

服务器存储数据恢复环境:
某品牌MSA2000存储,该存储中有一组由8块SAS硬盘(其中有一块热备盘)组建的RAID5阵列,raid5阵列上层划分了6个lun,均分配给HP-Unix小型机使用,主要数据为oracle数据库和OA服务端。

服务器存储故障:
该MSA2000存储RAID5阵列中2块硬盘出现故障离线,阵列中只有一块热备盘,虽然热备盘成功激活,RAID5阵列瘫痪,上层LUN无法使用,存储不可用。

服务器存储数据恢复过程:
1、收到故障存储中所有磁盘后,由硬件工程师对所有磁盘做物理故障检测,没有发现有硬盘存在明显物理故障,都可以正常读取。使用坏道检测工具检测所有磁盘,也没有发现有硬盘存在坏道。
2、将所有磁盘以只读方式做扇区级全盘镜像。镜像完成后将所有磁盘还给用户方,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。

注:由于所有磁盘没有检测出存在明显的物理故障或者坏道,所以可以判断出磁盘离线的原因是读写性能不稳定。因为MSA2000存储中的raid控制器的磁盘检查策略非常严格,一旦阵列中有磁盘性能不稳定,控制器就将这些磁盘识别为坏盘并踢出RAID。一旦RAID中掉线的盘到超过该RAID级别所允许掉盘的最大数量,该RAID崩溃,上层基于RAID的LUN也将不可用。
3、MSA2000存储的LUN都是基于RAID的。分析所有磁盘中数据,发现其中一块盘的数据同其它盘不一样,可以初步判断这块盘是热备盘盘。分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,初步判断此硬盘是先掉线的那块磁盘。通过RAID校验程序对这个条带做校验,最终确定先掉线的那块硬盘。分析Oracle数据库页在每个磁盘中的分布情况,并根据数据分布的情况获取RAID的条带大小,磁盘顺序及数据走向等RAID的重要信息。根据分析出的RAID信息虚拟重组原始RAID。
4、分析LUN在RAID中的分配情况,以及LUN分配的数据块MAP。将每一个LUN的数据块分布MAP提取出来,北亚企安数据恢复工程师编写程序解析所有LUN的数据MAP,然后根据数据MAP导出所有LUN的数据。

5、分析所有导出的LUN,发现所有LUN中均包含HP-Unix的LVM信息。尝试解析每个LUN中的LVM信息,一共发现三个LVM:一个LVM中划分了一个LV,里面存放OA服务器端的数据;一个LVM中划分了一个LV,里面存放临时备份数据;剩余4个LUN组成一个LVM,只划分了一个LV,里面存放Oracle数据库文件。北亚企安数据恢复工程师编写LVM解释程序,尝试将所有LVM中的LV都解释出来,但发现解释过程中程序出错。
6、分析程序报错原因,开发工程师debug程序出错的位置。文件系统工程师对恢复出来的LUN做检测后发现存储瘫痪导致LVM信息损坏。尝试人工修复损坏的区域并同步修改程序,重新解析LVM逻辑卷。
7、搭建HP-Unix环境,将解释出来的LV映射到HP-Unix并尝试Mount文件系统,结果Mount文件系统出错。尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,修复完成后仍然无法挂载文件系统。怀疑vxfs文件系统的部分元数据可能被破坏,需要手工修复。
8、仔细分析解析出来的LV,根据VXFS文件系统的底层结构校验此文件系统是否完整。经过分析发现VXFS文件系统果然存在问题,原来存储瘫痪的时候VXFS文件系统正在执行IO操作,导致部分文件系统元文件损坏。手工修复损坏的元文件,直到能够正常解析VXFS文件系统。再次将修复好的LV挂载到HP-Unix小型机上,尝试Mount文件系统,这回没有报错,成功挂载。
9、在HP-Unix小型机上mount文件系统后,将所有用户数据备份至指定磁盘空间。
部分文件目录截图:

10、使用Oracle数据库文件检测工具“dbv”检测每个数据库文件的完整性,经过检测没有发现问题。再使用北亚企安自主研发的Oracle数据库检测工具进行检测,发现部分数据库文件和日志文件校验不一致。由数据库工程师对此类文件进行修复后再次校验,直到所有数据库文件均通过校验为止。
11、将恢复出来的Oracle数据库附加到原始生产环境的HP-Unix小型机中,尝试启动Oracle数据库,Oracle数据库启动成功。

12、由用户方配合,启动Oracle数据库和OA服务端。通过本地安装的OA客户端数据记录进行验证,并且用户方安排不同部门人员进行远程验证。经过仔细验证,确定恢复出来的数据完整可用,认可本次数据恢复结果。本次数据恢复工作完成。

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

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

相关文章

链表面试题及其解析

1.返回倒数第k个节点 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 示例: 输入: 1->2->3->4->5 和 k 2 输出: 4 说明: 给定的 k 保证是有效的。 1.1快慢指针 即慢指针一次走一步…

[C++][数据结构]二叉搜索树:介绍和实现

二叉搜索树 概念 二叉搜索树又称二叉排序树,它是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也…

JavaScript中的Math对象方法、Date对象方法

个人主页:学习前端的小z 个人专栏:JavaScript 精粹 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 🌟Math对象方法🍄1 Math静态属性🍄2 Math…

Vue阶段练习:组件拆分

页面开发思路 分析页面&#xff0c;按模块拆分组件&#xff0c;搭架子&#xff08;局部或全局注册&#xff09;根据设计图&#xff0c;编写html结构css样式拆分封装通用小组件&#xff08;局部或全局注册&#xff09;将来通过js动态渲染实现功能 BaseBrandItem.vue <templ…

A5资源网有哪些类型的资源可以下载?

A5资源网提供了广泛的资源下载&#xff0c;包括但不限于以下类型&#xff1a; 设计素材&#xff1a;包括各类图标、矢量图、背景素材、UI界面元素等&#xff0c;适用于网页设计、平面设计等领域。 图片素材&#xff1a;提供高质量的照片、插图、摄影作品等&#xff0c;可用于…

使用STM32F103C8T6与蓝牙模块HC-05连接实现手机蓝牙控制LED灯

导言: 在现代智能家居系统中,远程控制设备变得越来越普遍和重要。本文将介绍如何利用STM32F103C8T6单片机和蓝牙模块HC-05实现远程控制LED灯的功能。通过这个简单的项目,可以学会如何将嵌入式系统与蓝牙通信技术相结合,实现远程控制的应用。 目录 导言: 准备工作: 硬…

ue引擎游戏开发笔记(27)——解决角色移动及转动存在卡顿掉帧小技巧

1.需求分析&#xff1a; 随之游戏越来越大&#xff0c;难免出现部分时候移动出现卡顿&#xff0c;能否进行一定优化。 2.操作实现&#xff1a; 1.思路&#xff1a;采取捕获最后deltaseconds来逐帧进行旋转或移动&#xff0c;使动作显得不那么卡顿。 .2.首先在引擎中建立映射&a…

【深度学习】第一门课 神经网络和深度学习 Week 4 深层神经网络

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;深度学习 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对…

DRF解析器源码分析

DRF解析器源码分析 1 解析器 解析请求者发来的数据&#xff08;JSON&#xff09; 使用 request.data 获取请求体中的数据。 这个 reqeust.data 的数据怎么来的呢&#xff1f;其实在drf内部是由解析器&#xff0c;根据请求者传入的数据格式 请求头来进行处理。 drf默认的解…

连接一个 IP 不存在的主机时,会发生什么?(面试)

一、IP 不存在时 如果 IP 在局域网内&#xff0c;会发送 N 次 ARP 请求获得目的主机的 MAC 地址&#xff0c;同时不能发出 TCP 握手消息。 如果 IP 在局域网外&#xff0c;会将消息通过路由器发出&#xff0c;但因为最终找不到目的地&#xff0c;触发 TCP 重试流程。 二、IP…

✔ ★Java项目——设计一个消息队列(五)【虚拟主机设计】

虚拟主机设计 创建 VirtualHost实现构造⽅法和 getter创建交换机删除交换机创建队列删除队列创建绑定删除绑定发布消息 ★路由规则1) 实现 route ⽅法2) 实现 checkRoutingKeyValid3) 实现 checkBindingKeyValid4) 实现 routeTopic5) 匹配规则测试⽤例6) 测试 Router 订阅消息1…

酒水门店私域流量运营搭建执行规划方案

【干货资料持续更新&#xff0c;以防走丢】 酒水门店私域流量运营搭建执行规划方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 精酿啤酒品牌私域执行运营的内容策划&#xff0c;涉及以下几个…

快讯! MySQL 8.4.0 LTS 发布(MySQL 第一个长期支持版本)

MySQL 第一个长期支持版本 8.4.0 LTS 发布&#xff0c;社区版下载地址&#xff1a; https://dev.mysql.com/downloads/mysql/ 功能变更 添加或更改的功能 组复制&#xff1a;与组复制相关的两个服务器系统变量的默认值已更改&#xff1a; 系统变量的默认值为 group_replication…

HashMap源码分析(jdk1.8,保证你能看懂)

现在的面试当中凡是那些大厂&#xff0c;基本上都会问到一些关于HashMap的问题了&#xff0c;而且这个集合在开发中也经常会使用到。于是花费了大量的时间去研究分析写了这篇文章。本文是基于jdk1.8来分析的。篇幅较长&#xff0c;但是都是循序渐进的。耐心读完相信你会有所收获…

【QT学习】12.UDP协议,广播,组播

一。Udp详细解释 UDP&#xff08;User Datagram Protocol&#xff09;是一种无连接的传输层协议&#xff0c;它提供了一种简单的、不可靠的数据传输服务。与TCP相比&#xff0c;UDP不提供可靠性、流量控制、拥塞控制和错误恢复等功能&#xff0c;但由于其简单性和低开销&#x…

for循环赋值

在for循环内将i赋值给j的问题 for(int i0,ji1;i<5;i){//此时j只会等于1cout<<"i-"<<i<<" j-"<<j<<endl; }如图&#xff1a; 将j放入循环体后没问题 for(int i0;i<5;i){int j i1; cout<<"i-"<<…

leetcode84柱状图中最大的矩形

题解&#xff1a; - 力扣&#xff08;LeetCode&#xff09; class Solution {public int largestRectangleArea(int[] heights) {Stack<Integer> stack new Stack<>();int maxArea Integer.MIN_VALUE;for(int i 0;i < heights.length;i){int curHeight hei…

|Python新手小白中级教程|第二十三章:列表拓展之——元组

文章目录 前言一、列表复习1.索引、切片2.列表操作字符3.数据结构实践——字典 二、探索元组1.使用索引、切片2.使用__add__((添加元素&#xff0c;添加元素))3.输出元组4.使用转化法删除元组指定元素5.for循环遍历元组 三、元组VS列表1.区别2.元组&#xff08;tuple&#xff0…

【书生·浦语大模型实战营第二期】Lagent AgentLego 智能体应用搭建——学习笔记6

文章目录 概述Lagent: 轻量级智能体框架Lagent Web Demo用Lagent自定义工具 AgentLego&#xff1a;组装智能体“乐高”直接使用AgentLego作为智能体工具使用AgentLego用AgentLego自定义工具 参考资料 概述 Lagent是什么 一个轻量级开源智能体框架&#xff0c;提供了一些典型工…

(ARM)ORACLE JDK 22 的下载安装及环境变量的配置

目录 获取JDK 安装JDK 配置JAVA环境变量 其他补充&#xff1a;JDK 22的新特征 1. 语法 2. 库 3. 性能 4. 工具 在今年的3月份&#xff0c;ORACLE 更新了的JDK 发行版 JDK 22&#xff0c;作为了一位ORACLE Primavera系列产品的研究者&#xff0c;其实对JDK的迭代完全不感…