百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

服务器数据恢复—raid5阵列多块磁盘离线导致阵列崩溃的数据恢复

mhr18 2024-12-26 13:06 16 浏览 0 评论

服务器存储数据恢复环境:

某品牌MSA2000FC存储中有一组由7块盘组建的RAID5阵列,另外还有1块硬盘作为热备盘使用。

基于RAID5阵列划分的几个LUN分配给小机使用,存储空间通过LVM管理,重要数据为Oracle数据库及OA服务端。

服务器存储故障:

RAID5阵列中2块硬盘离线,唯一的热备盘成功激活,RAID5阵列还是变得不可用,上层LUN无法使用。

服务器存储数据恢复过程:

1、将故障存储中所有磁盘标记后取出,由硬件工程师对所有磁盘做物理故障检测,检测后没有发现有磁盘存在物理故障,都可以正常读取。以只读方式将所有磁盘进行扇区级全盘镜像,镜像过程中没有发现有磁盘存在坏道。



2、由于所有磁盘经过检测都不存在物理故障或者坏道,基本上可以判断磁盘掉线的是磁盘读写不稳定造成的。故障存储的控制器通常会将某些性能不稳定的磁盘识别为坏盘,并踢出RAID。而一旦RAID中掉线的盘数达到该RAID级别允许掉盘的极限,这个RAID将变得不可用,上层基于RAID的LUN也无法正常使用。

基于镜像文件分析所有磁盘底层数据,获取到重组raid所需信息(RAID级别,条带规则,条带大小,校验方向,META区域等)并找到热备盘和2块掉线硬盘的掉线顺序,然后根据这些信息重组RAID。

3、raid重组完成后分析LUN在RAID中的分配情况,以及LUN分配的数据块MAP,将每一个LUN的数据块分布MAP提取出来。北亚企安数据恢复工程师编写程序解析所有LUN的数据MAP,然后根据数据MAP导出所有LUN的数据。



4、分析所有LUN,发现所有LUN中均包含LVM逻辑卷信息。尝试解析每个LUN中的LVM信息,一共发现三套LVM:第一个LVM中划分了一个LV,存放OA服务器端的数据;第二个LVM中也划分了一个LV,里面存放临时备份数据;剩下几个LUN组成一个LVM,也划分了一个LV,里面存放Oracle数据库文件。北亚企安数据恢复工程师编写解释LVM的程序,将每套LVM中的LV卷都解释出来,但是解释过程中出现错误。

5、分析程序报错的原因,由开发工程师debug程序出错的位置。文件系统工程师检测恢复出来的LUN,检测LVM逻辑卷的信息是否损坏。经过检测,发现LVM信息确实因为存储瘫痪而损坏。尝试人工修复损坏的区域,并同步修改程序,然后重新解析LVM逻辑卷。

6、搭建环境,将解释出来的逻辑卷映射到小机,并尝试挂载文件系统,结果文件系统挂载出错。尝试使用“fsck –F vxfs” 命令修复vxfs文件系统,修复后还是无法挂载。数据恢复工程师怀疑vxfs文件系统的元数据被破坏,需要修复。

7、分析解析出来的LV,根据VXFS文件系统的底层结构校验此文件系统的完整性。经过分析发现底层VXFS文件系统果然有问题,部分文件系统元文件损坏。人工修复这些损坏的元文件,保证VXFS文件系统能够正常解析。将修复好的逻辑卷挂载到小机上,并尝试挂载文件系统。这回没有报错,成功挂载。

8、在小机上挂载上文件系统后,将所有用户数据备份至指定空间。



9、使用Oracle数据库文件检测工具“dbv”检测每个数据库文件的完整性,没有发现错误。使用北亚企安自主开发的Oracle数据库检测工具检测,发现部分数据库文件和日志文件校验不一致。修复此类文件并再校验,直到所有文件校验均通过。

10、将恢复出来的Oracle数据库附加到原始生产环境的小机中,尝试启动Oracle数据库,Oracle数据库启动成功。



11、在用户方的配合下,启动Oracle数据库和OA服务端。在本地电脑上安装OA客户端,通过OA客户端验证最新的数据记录以及历史数据记录,并且安排不同部门工作人员进行远程验证。经过仔细验证,用户方确认数据完整可用,认可数据恢复结果。

相关推荐

Docker集群管理之Docker Compose

前言:在上一篇《Docker集群管理之DockerMachine》中,我们通过源码分析了解了DockerMachine的工作原理,使用者可以通过DockerMachine的一条命令在任意支持的平...

使用Dockerfile build镜像

Docker映像可以看作是Docker容器的压缩包,包含了应用程序以及运行应用程序所需的依赖,容器是映像的运行时实例。一般构建镜像都是使用dockerfile进行构建而不是dockercommit,...

自建私有云相册:Docker一键部署Immich,照片视频备份利器

自建私有云相册:Docker一键部署Immich,照片视频备份利器前言随着人们手机、PC、平板等电子产品多样,我们拍摄和保存的照片和视频数量也在不断增加。如何高效地管理和备份这些珍贵的记忆成为了一个重...

docker容器的使用以及部署mysql

首先什么是docker官方:翻译:Docker是一个用于开发、发布和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分离,以便您可以快速交付软件。使用Docker,您可以像管理应...

自建Docker镜像加速服务,免费且简单,服务器VPS、NAS皆可用
自建Docker镜像加速服务,免费且简单,服务器VPS、NAS皆可用

写在前面:流程十分简单,有手就行,还请耐心看完。本文的实例仅做演示用,不久后将会删除,有需要的各位请自行搭建。免费实例如果15分钟内未收到入站流量,Render会关闭实例的网络服务。Render会在下次收到处理请求时重新启动该服务。Ren...

2025-05-24 15:40 mhr18

用了8年的方式-用 Docker 瞬间搭建本地开发环境

有些时候我们需要在本地搭开发环境,比如平时学习新技术的时候。或者有时候公司的项目需要在本地建一套类似的,方便调试修改。开发环境可能包括MySQL、Redis、Nginx、MQ、Elasticsea...

使用dockerfile构建docker镜像

准备工作购买vps使用ssh工具连接上1、更新系统aptupdate-y2、一键安装Dockercurl-fsSLhttps://get.docker.com-oget-docker.sh...

快速搭建 SpringCloud 微服务开发环境的脚手架

本文适合有SpringBoot和SpringCloud基础知识的人群,跟着本文可使用和快速搭建SpringCloud项目。本文作者:HelloGitHub-秦人HelloGitHub推出...

Docker Hub最全详解(图文全面总结)

DockerHubDockerHub是一个由Docker公司负责维护的公共注册中心,它包含了超过15000多个可用来下载和构建容器的Docker镜像。DockerHub作用Docker好比一个代...

Docker 命令详解

dockerimages—查看本地镜像命令dockerimages说明列出本地已下载的所有镜像及其标签、ID、大小等信息。适用场景查看本地镜像资源、准备删除或管理镜像时。常见用法docker...

Kylin安装Dify

cd/mntgitclonehttps://github.com/langgenius/dify.gitcp/mnt/dify/docker/.env.example/mnt/dif...

kali下对Docker的详细安装

Docker是渗透测试中必学不可的一个容器工具,在其中,我们能够快速创建、运行、测试以及部署应用程序。如,我们对一些漏洞进行本地复现时,可以使用Docker快速搭建漏洞环境,完成复现学习。注:本教程仅...

银河麒麟V10使用Docker方式部署应用

现在越来越多的企业级应用需要运行在国产化环境中,而银河麒麟V10是目前我碰到的最常用的服务器,在银河麒麟上部署应用有两种方式:使用二进制文件编译部署和使用Docker。关于使用二进制文件的方式...

Docker入门到精通超详细教程,Docker全家桶实战攻略

大家好,我是各位双生的武魂、随身老爷爷。从看到这篇内容开始,你就是被选定的天命骚年,将承担起学完docker教程的使命,本使命为单向契约,你可选择YES或者选择YES。正式学习之前,我先给大家做一下d...

【Docker 新手入门指南】第一章:前言

一、基本介绍Docker介绍Docker是基于Go语言开发的开源容器化平台,旨在实现“一次镜像,处处运行”。它通过将应用程序及其依赖环境(代码、运行时、系统工具、系统库等)打包成一个轻量级、可移...

取消回复欢迎 发表评论: