当前位置: 首页 > news >正文

服务器数据恢复—raid5磁盘阵列崩溃如何恢复数据?

服务器数据恢复环境&故障:
一台服务器中有5块硬盘,其中的4块组建了一组RAID5阵列,剩下一块盘作为热备盘(Hot-Spare)使用。服务器操作系统为linux,应用系统为构架于oracle数据库的一个oa。
raid5阵列中一块盘离线,但热备盘未自动激活rebuild。直到另外一块盘离线,RAID崩溃。
由于oracle已经不再对本案例中的oa系统提供后续支持,用户方要求尽可能恢复数据和操作系统。经过检测发现热备盘完全没有启用,硬盘无明显物理故障,无明显同步表现。

服务器数据恢复过程:
1、将故障服务器中所有硬盘做好标记后取出,以只读方式将所有硬盘进行扇区级别完整镜像,镜像后发现后离线的硬盘有10-20个坏扇区,其余磁盘,均无坏道。镜像完成后将所有硬盘根据标记按照原样还原到原服务器中。后续的数据分析和数据恢复操作都基于镜像文件进行,避免后续操作对原始数据造成二次破坏。
2、基于镜像文件分析raid结构,获取到盘序、块大小、backward parity(Adaptec)等raid结构相关信息。

3、验证数据发现大小200M以上的压缩包解压无报错,确定结构正确。
4、按照此结构虚拟重组RAID到一块单硬盘上,打开文件系统无明显报错。
5、确定备份包安全的情况下,经用户方同意后,对原盘重建RAID(重建时已经用全新硬盘更换发现坏扇区的硬盘)。将恢复好的单盘用USB方式接入故障服务器,再用linux SystemRescueCd启动故障服务器,之后通过dd命令进行全盘回写。
6、回写后启动操作系统。无法正常进入操作系统并且报错。
怀疑报错信息中提到的文件权限有问题。使用SystemRescueCd重启后检查,发现此文件时间,权限,大小均有明显错误,显然节点损坏。
7、重新分析重组数据中的根分区,定位出错的目录,发现问题是由硬盘坏道引起的。
使用其他数据盘盘,针对发现坏道的硬盘的损坏区域进行xor补齐。补齐后重新校验文件系统,依然有错误。再次检查inode表,发现坏道的硬盘上的损坏区域有部分节点表现下图中的55 55 55部分。

8、虽然节点中描述的uid还正常存在,但属性、大小、最初的分配块全部是错误的。按照所有可能进行分析,确定无法找回此损坏节点。要么修复此节点,或者复制一个相同的文件过来。
对所有可能有错的文件,通过日志确定原节点块的节点信息,再做修正。
修正后重新dd根分区,执行fsck命令进行检测,依然报错。

9、根据提示,在系统中发现有多个节点共用同样的数据块。按此提示进行底层分析,发现存在节点信息的新旧交集。
10、北亚企安数据恢复工程师按照节点所属的文件进行区别。清除错误节点后,再次执行fsck命令检测,依然出现报错,但数量已经很少。根据提示,发现这些节点大多位于doc目录下,不影响系统启动,于是直接fsck命令强行修复。
修复完成后重启系统,成功进入桌面。启动数据库服务和应用软件,一切正常,无报错。数据库数据恢复工作完成。

http://www.dtcms.com/a/285034.html

相关文章:

  • C 语言基础第 08 天:数组与冒泡排序
  • 测试学习之——Pytest Day3
  • Maven详细解
  • Helm-k8s包管理工具(一)核心概念、helm工作目录
  • 搞清MVCC
  • SpringMVC @ResponseBody注解详解
  • Postman接口测试实现UI自动化测试
  • 巧用 Golang 函数特性实现单元测试中的数据库操作 Mock
  • 使用Jmeter进行http接口性能测试
  • 可获得的最大点数
  • https与DNS的运行流程
  • 在ubuntu系统上搭建svn服务器的做法
  • 【分治思想解题框架】【分解、求解、合并】
  • 用图片生成高保真3D模型!Hi3DGen以法线为桥,为高清三维几何生成另辟蹊径
  • 记录timesfm2.0复现及调优
  • CAD model dataset 下载
  • 云徙科技----一面(全栈开发)
  • 学生信息管理案例
  • Linux操作系统之线程:线程概念
  • 常用API
  • 通过nginx 解决跨域问题
  • Selector的用法
  • 现在遇到一个问题 要使用jmeter进行压测 jmeter中存在jar包 我们还要使用linux进行发压,这个jar包怎么设计使用
  • 《错误记录》java: 警告: 源发行版 17 需要目标发行版 17
  • C++11新特性(上)——右值引用,移动语义,引用折叠,完美转发,初始化列表,可变参数模版,lambda,包装器
  • 通过轮询方式使用LoRa DTU有什么缺点?
  • CMake综合学习2: 构建高效可靠的C++中型服务项目以及现代CMake全链条指南
  • 【CodeTop】每日练习 2025.7.17
  • 面试Redis篇-深入理解Redis缓存雪崩
  • 关于vector中的erase的强调