一、服务器数据恢复案例背景:

HP FC MSA2000服务器空间由8块450GB SAS硬盘组成raid5磁盘阵列,一块热备盘。服务器在使用中先后有两块硬盘离线,导致服务器瘫痪,lun无法正常使用。
服务器数据恢复工程师分别对服务器中所有磁盘进行物理检测和坏道检测,均无异常。

二、服务器数据恢复备份

考虑到数据的安全性以及可还原性,在做数据恢复之前需要对所有源数据做备份,以防万一其他原因导致数据无法再次恢复。使用dd命令或winhex工具将所有磁盘都镜像成文件。
备份完部分数据如下图:

三、服务器数据恢复故障原因分析:

目前初步了解的情况为基于RAID组的LUN有6个,均分配给HP-Unix小机使用,上层做的LVM逻辑卷,重要数据为Oracle数据库及OA服务端。由于HP MSA2000服务器中一旦某些磁盘性能不稳定,HP MSA2000控制器将其认为是坏盘的磁盘踢出RAID组。而一旦RAID组中掉线的盘到达到RAID级别允许掉盘的极限,那么这个RAID组将变的不可用,导致服务器瘫痪。

四、分析服务器RAID组结构:

服务器的LUN都是基于RAID组的,要想恢复服务器数据就需要先分析底层RAID组的信息,然后根据分析的信息重构原始的RAID组。分析每一块数据盘,发现4号盘的数据同其它数据盘不太一样,初步认为可能是hot Spare盘。接着分析其他数据盘,分析Oracle数据库页在每个磁盘中分布的情况,并根据数据分布的情况得出RAID组的条带大小,磁盘顺序及数据走向等RAID组的重要信息。

五、分析服务器RAID组掉线盘

根据上述分析的RAID信息,尝试通过北亚自主开发的RAID虚拟程序将原始的RAID组虚拟出来。但由于整个RAID组中一共掉线两块盘,因此需要分析这两块硬盘掉线的顺序。仔细分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,因此初步判断此硬盘可能是最先掉线的,通过北亚自主开发的RAID校验程序对这个条带做校验,发现除掉刚才分析的那块硬盘得出的数据是最好的,因此可以明确最先掉线的硬盘了。

六、分析RAID组中的LUN信息

由于LUN是基于RAID组的,因此需要根据上述分析的信息将RAID组最新的状态虚拟出来。然后分析LUN在RAID组中的分配情况,以及LUN分配的数据块MAP。由于底层有6个LUN,因此只需要将每一个LUN的数据块分布MAP提取出来。然后针对这些信息编写相应的程序,对所有LUN的数据MAP做解析,然后根据数据MAP并导出所有LUN的数据。
导出的数据如下图:

七、服务器LVM逻辑卷及VXFS文件系统修复

分析生成出来的所有LUN,发现所有LUN中均包含HP-Unix的LVM逻辑卷信息。尝试解析每个LUN中的LVM信息,发现其中一共有三套LVM,其中45G的LVM中划分了一个LV,里面存放OA服务器端的数据,190G的LVM中划分了一个LV,里面存放临时备份数据。剩余4个LUN组成一个2.1T左右的LVM,也只划分了一个LV,里面存放Oracle数据库文件。编写解释LVM的程序,尝试将每套LVM中的LV卷都解释出来,但发现解释程序出错。
仔细分析程序报错的原因,安排开发工程师debug程序出错的位置,并同时安排高级文件系统工程师对恢复的LUN做检测,检测LVM信息是否会因存储瘫痪导致LMV逻辑卷的信息损坏。经过仔细检测,发现确实因为存储瘫痪导致LVM信息损坏。尝试人工对损坏的区域进行修复,并同步修改程序,重新解析LVM逻辑卷。
搭建HP-Unix环境,将解释出来的LV卷映射到HP-Unix,并尝试Mount文件系统。结果Mount文件系统出错,尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,但修复结果还是不能挂载,怀疑底层vxfs文件系统的部分元数据可能破坏,需要进行手工修复。
仔细分析解析出来的LV,并根据VXFS文件系统的底层结构校验此文件系统是否完整。分析发现底层VXFS文件系统果然有问题,原来当时存储瘫痪的同时此文件在系统正在执行IO操作,因此导致部分文件系统元文件没有更新以及损坏。人工对这些损坏的元文件进行手工修复,保证VXFS文件系统能够正常解析。再次将修复好的LV卷挂载到HP-Unix小机上,尝试Mount文件系统,文件系统没有报错,成功挂载。

八、检测Oracle数据库文件并启动数据库

在HP-Unix机器上mount文件系统后,将所有用户数据均备份至指定磁盘空间。所有用户数据大小在1.2TB左右。
部分文件目录截图如下:

使用Oracle数据库文件检测工具“dbv”检测每个数据库文件是否完整,发现并没有错误。再使用北亚自主研发的Oracle数据库检测工具(检验更严格),发现有部分数据库文件和日志文件校验不一致,安排高级数据库工程师对此类文件进行修复,并在次校验,直到所有文件校验均完全通过。
由于我们提供的HP-Unix环境没有此版本的Oracle数据,因此和用户协调将原始生成环境带至北亚数据恢复中心,然后将恢复的Oracle数据库附加到原始生产环境的HP-Unix服务器中,尝试启动Oracle数据库,Oracle数据库启动成功。
部分截图如下:

九、服务器数据恢复成功:

启动Oracle数据库,启动OA服务端,在本地笔记本安装OA客户端。通过OA客户端对最新的数据记录以及历史数据记录进行验证,并且有用户安排远程不同部门人员进行远程验证。最终数据验证无误,数据完整,数据恢复成功。

转载于:https://blog.51cto.com/sun510/2147735

HP FC MSA2000服务器raid数据恢复成功案例相关推荐

  1. 【长文+图片】HP FC MSA2000服务器瘫痪数据恢复过程

    服务器数据恢复故障描述 某公司的一台HP FC MSA2000服务器,服务器中搭建RAID5阵列,服务器正常使用过程中出现2块硬盘损坏并离线,而此时只有一块热备盘成功激活,因此导致RAID5阵列瘫痪, ...

  2. 服务器Raid数据恢复成功案例和raid 5数据恢复算法原理

    服务器Raid 5数据恢复案例 本次分享的案例是一台服务器中的raid磁盘阵列,磁盘阵列中有12块磁盘,单盘容量500G,ext3文件系统,系统平台为Linux平台.Raid中2号盘和6号盘两块硬盘报 ...

  3. 服务器系统坏了 其它盘数据恢复,服务器raid数据恢复,raid坏一般什么原因

    服务器raid数据恢复,raid坏一般什么原因 浏览量: 0 次  来源:未知  发布日期:2018-11-03 22:21:37 兆柏数据恢复为所有RAID设备和配置提供专业的数据恢复和数字取证服务 ...

  4. 【服务器raid数据恢复】RAID5两块盘离线的数据恢复案例

    服务器数据恢复环境: raid5磁盘阵列: 10块磁盘,单盘容量1TB: 6号盘是热备盘. 服务器故障: 阵列中2块磁盘离线,黄色警报灯亮起.管理员对服务器初步检测,发现阵列磁盘序列号不能读取/无法通 ...

  5. 光纤存储重组raid磁盘阵列和raid数据恢复成功案例

    今天我给大家分享的是一篇关于raid磁盘阵列数据恢复的案例,本案例中包含了对磁盘阵列的修复和重组过程,raid数据恢复中的方法比较通用,希望在数据恢复方面对大家有所帮助. Raid阵列情况介绍: 需要 ...

  6. raid5数据恢复方法,服务器磁盘阵列数据恢复成功案例

    [物理服务器与逻辑存储介绍] 客户使用一台IBM 3850服务器,4块300GB SAS磁盘做的RAID5磁盘阵列.服务器操作系统为 windows2003 x64,跑有一个单节点Oracle,版本为 ...

  7. 某公司服务器raid阵列2块硬盘损坏数据恢复成功案例

    一.raid数据恢复故障描述 故障描述 HP FC MSA2000存储 整个存储空间由8块450GB SAS的硬盘组成,其中7块硬盘组成一个RAID5的阵列,剩余1块做成热备盘使用.由于RAID5阵列 ...

  8. 惠普g7服务器硬盘阵列,HP DL388 G7 服务器重新做RAID

    HP DL388 G7 服务器做RAID 时间:20190626 介绍: 因为工作需求需要将新来的服务器的硬盘做一些调整,需要重新做RAID. 首先在调整完各个服务器的硬盘数量,分配好之后重启服务器. ...

  9. 【北亚数据恢复】Hp DL380服务器raid磁盘故障导致数据库数据丢失的数据恢复案例

    环境: HP DL380服务器: 三块300GSAS硬盘: 数据库在D分区: 备份放在E分区. 故障: 一块硬盘出现故障,状态灯红色,RAID瘫痪,存储故障,D分区不能识别,E分区可识别,拷贝备份文件 ...

  10. Raid5磁盘阵列数据恢复成功案例/服务器数据恢复方案

    [磁盘阵列数据恢复故障描述] 客户的一台服务器,服务器使用hp smart array控制器挂载了一台国产磁盘阵列,磁盘阵列由14块146G SCSI硬盘组成一组RAID5.操作系统为LINUX,构建 ...

最新文章

  1. 看漫画学python pdf下载_用python下载漫画并打包成pdf文件
  2. loadlibrary 失败_职称评审失败的原因有哪些?
  3. 一起学Python:列表介绍
  4. VB与Java颜色值的转换
  5. linux下unix timestamp 与 可视化时间/常规时间进行转换
  6. Centos 的安装(2)
  7. html文本格式化意思,HTML文本格式化标签(Formatting)
  8. 所有编程语言为我作证,随机数骗局大揭秘,随机数都是骗人的!
  9. java 命名规则_java中命名规范
  10. MaxScript学习 | 创建石头
  11. Skyline TEP5.1.3二次开发入门——初级(四)
  12. 给各位“老划水员”分享10款提高幸福指数的VSCode“摸鱼神器“
  13. ElasticSearch(6.3.0)的配置和使用全过程
  14. 【RT-Thread】nxp rt10xx 设备驱动框架之--adc搭建和使用
  15. AI实战:文本自动摘要简述
  16. PM:iOS 为什么感觉比 Android 流畅?
  17. @文本处理之三剑客的简单使用
  18. windows下同步方案-cwRsync
  19. MeeGo维基介绍如何在WeTab上安装 手机版meego系统
  20. 使用Python Link SDK接入阿里云物联网平台

热门文章

  1. android UncaughtExceptionHandler全局异常处理
  2. mysql 分表查询外连接_SQL多表连接查询实例(内连接外连接)
  3. mysql悲观锁隔离级别_mysql隔离级别与悲观锁、乐观锁
  4. android怎么操作才会出现anr_博客笔记大汇总,Android优化总结篇
  5. python实现生日祝福短信_Python实现好友生日提醒
  6. linux内核 list 使用,使用linux 内核中代码之--list
  7. 会java需要多久能学会python_学好Python,c++ 和Java要多久?
  8. pyhon如何连接mysql_python如何连mysql数据库
  9. golang语言示例:--->下载网站的json文件,同时对文件进行分析输出
  10. go-结构化,方法的创建以及使用