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

服务器存储数据恢复环境:
某品牌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.mzph.cn/diannao/6973.shtml

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

相关文章

【LeetCode刷题】34. 在排序数组中查找元素的第一个和最后一个位置

1. 题目链接 34. 在排序数组中查找元素的第一个和最后一个位置 2. 题目描述 3. 解题方法 找到元素的第一个位置,也就是找大于等于目标的最小值找到元素的最后一个位置,也就是找小于等于目标的最大值可以利用2次二分查找来解决 3.1. 第一次查找 3.2. …

今日详解,教你如何不直播在视频号卖货

大家好,我是电商笨笨熊 视频号作为背靠微信的平台,从不需要考虑自身的流量问题, 因此在视频号推出之后就有大批的主播从其他平台转入视频号; 而这时候很多普通人应该也发现了新的机会,不再去内卷抖音、快手直播&…

【Git】Github创建远程仓库并与本地互联

创建仓库 点击生成新的仓库 创建成功后会生成一个这样的文件 拉取到本地 首先先确保本地安装了git 可以通过终端使用 git --version来查看是否安装好了git 如果显示了版本信息,说明已经安装好了git,这时候我们就可以进入我们想要clone到问目标文件夹 …

python-正则表达试-实践1

匹配html标签中的任意标签内数据 匹配所有包含’oo’的单词 import re text "JGood is a handsome boy, he is cool, clever, and so on..." re.findall(r\w*oo\w*, text) 匹配 html中title里面的内容 原文: import re file r./202304.html f open(…

2023数维杯A题原创完整论文思路和求解代码

河流对地下水有着直接地影响,当河流补给地下水时,河流一旦被污染,容易导致地下水以及紧依河流分布的傍河水源地将受到不同程度的污染,这将严重影响工农业的正常运作、社会经济的发展和饮水安全。在地下水污染中最难治理和危害最大的是有机污染,因而对有机污染物在河流-地下…

WordPress Automatic插件 SQL注入漏洞复现(CVE-2024-27956)

0x01 产品简介 WordPress Automatic(又称为WP Automatic)是一款流行的WordPress插件,旨在帮助网站管理员自动化内容创建和发布。该插件可以从各种来源(如RSS Feeds、社交媒体、视频网站、新闻网站等)获取内容,并将其自动发布到WordPress网站。 0x02 漏洞概述 WordPres…

从论文中看AI绘画

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 主要看是看Diffusion Models,CLIP,ControlNet,IP-Adapter这种经典论文,尝试总结论文写作的一些方式以及图像生成模型的一些内在思想. 对于其中的数学原理和代码不过深究. DDPM 使用扩散模型得到高质量图像,证明了这…

“给力”用日语怎么说?柯桥成人日语培训

在日语中,给力这个词可以翻译成几个不同的表达方式,具体取决于语境。以下我将给出几个常见的日语翻译以及例句帮助理解: スゴイ 这个词意思为“太棒了”,是表达给力的最常见说法。 例如: これはスゴイ映画だね。这电影太给力了! 最高 意思为“最棒的”,也可以用来表达给力。 例…

连锁店收银系统为什么贵

连锁店收银系统会比单机收银系统价格高一些,主要有三个方面的原因: 复杂的功能需求 连锁店收银系统需要管理多个分店的进销存、库存调拨、门店订货等操作,以及会员管理,商淘云连锁收银系统还提供了连锁线上商城等功能。这些功能的…

“胖猫”事件

1.她自以为手段高明,不过是他心甘情愿罢了。 2. 可惜他在最后一刻,也没怨恨过她。 3.她反复确定用不用还,他反复确定有没有爱。 4. 他才21岁,只想见你一面,有什么错。 5. 希望你学会爱的时候,爱的第一个人是…

csrf攻击(跨站请求伪造)【2】

1.DVWA中csrf漏洞验证low (1)受害者将密码更改为password,显示更改成功 (2)受害者未退出登录状态,打开了新链接(黑客设计好的修改密码为admin123(原本为passwrod)的链接),导致受害者密码被更改&#xff0c…

Python-VBA函数之旅-pow函数

目录 一、pow函数的常见应用场景 二、pow函数使用注意事项 三、如何用好pow函数? 1、pow函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:神奇夜光杯-CSDN博客 一、pow函数的常见应用场景 Py…

【Web】CTFSHOW 中期测评刷题记录(1)

目录 web486 web487 web488 web489 web490 web491 web492 web493 web494 web495 web496 web497 web498 web499 web500 web501 web502 web503 web505 web506 web507 web508 web509 web510 web486 扫目录 初始界面尝试文件包含index.php&am…

COUNT(1)\COUNT(*)\COUNT(列名)到底谁更快

今天来研究一个比较有趣的话题,关于我们平常使用mysql查询数量的到底那种方式查询效率更高的问题 起因 这个问题在我以前的认知里是,按效率从高到低品排序 count(1)>count(列名)>count(*),但是我也注意到过mybatis-plus官方提供的selectCount方法和分页查询时,它的SQL在…

Linux(openEuler、CentOS8)企业内网DHCP服务器搭建(固定Mac获取指定IP)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS8基本一致&#xff0c;可参考本文&#xff09;---- 目录 一、知识点二、实验&#xff08;一&#xff09;为服务器配置网卡和IP&#xff08;二&#xff09;为服务器安装DHCP服务软件&#xff08;三&a…

openGauss学习笔记-273 openGauss性能调优-实际调优案例02-调整I/O相关参数降低日志膨胀率

文章目录 openGauss学习笔记-273 openGauss性能调优-实际调优案例02-调整I/O相关参数降低日志膨胀率273.1 调整参数前的参数值273.2 调整参数后的参数值openGauss学习笔记-273 openGauss性能调优-实际调优案例02-调整I/O相关参数降低日志膨胀率 273.1 调整参数前的参数值 page…

[技术小技巧] 可视化分析:在jupyter中使用d3可视化树形结构

首先在python中定义一个字符串&#xff0c;记录d3.js绘制属性图的js脚本代码模版。其中{{data}}就是将来要被替换的内容。 d3_code_template """ // 创建树状结构数据 var treeData {{data}};// 创建d3树布局 var margin { top: 20, right: 90, bottom: 30,…

leecode每日一练

打家劫舍 我一开始的思路也是dp&#xff0c;但是转移方程想错了&#xff0c;这个题目转移方程应该是dp[i] max(dp[i-2]nums[i],dp[i-1]) class Solution { public:int rob(vector<int>& nums) {int len nums.size();vector<int> dp(len);int ans 0;if(len&g…

音频智能切换器JR-AR42-A

憬锐JR-AR42-A音频自动智能切换器(四切一)&#xff0c;具备四路模拟卡侬立体声音频输入&#xff0c;两路模拟卡侬立体声音频输出&#xff0c;其中输入第1路和输出第1路为断电直通通道。具有输入音频信号幅度判别&#xff0c;可设置门限电平和切换延时时间&#xff0c;可以根据需…

五一反向旅游,景区“AI+视频监控”将持续助力旅游业发展

一、建设背景 每年五一劳动节出去旅游都是人挤人状态&#xff0c;这导致景区的体验感极差。今年“五一反向旅游”的话题冲上了热搜&#xff0c;好多人选择了五一之后再出去旅游&#xff0c;避开拥挤的人群&#xff0c;这个时候景区的监管力度和感知能力就更要跟上去&#xff0…