服务器数据恢复—EVA存储故障导致上层应用不可用的数据恢复案例

服务器存储数据恢复环境:
一台EVA某型号控制器+EVA扩展柜+FC磁盘。

服务器存储故障&检测:
磁盘故障导致该EVA存储中LUN不可用,导致上层应用无法正常使用。

服务器存储数据恢复过程:
1、将所有磁盘做好标记后从扩展柜中取出。硬件工程师对所有磁盘做物理故障检测,并没有发现有磁盘存在物理故障。使用坏道检测工具检测也没有发现有磁盘存在大量坏道。以只读方式将所有硬盘进行扇区级全盘镜像。镜像完成后将所有磁盘按照原样还原到原扩展柜中,后续的数据分析和数据恢复都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析所有磁盘底层文件。由于没有检测到有磁盘存在物理故障或者大量坏道,由此推断故障是由于磁盘读写不稳定引起的。EVA控制器通常会将读写性能不稳定的磁盘认定为坏盘并踢出磁盘组。一旦某个LUN的同一个条带中的掉盘数量到达极限,这个LUN将变得不可用。EVA存储中包含这些掉线盘的LUN都会受影响。部分磁盘出现故障可能会导致整个存储无法正常使用。
3、EVA存储的LUN都是以RAID条目的形式存放数据的,EVA存储将每个磁盘的不同块组成一个RAID条目。RAID条目的类型可以有很多种,在恢复数据之前需要分析出组成LUN的RAID条目类型以及RAID条目是由哪些盘的哪些块所组成。这些信息都存放在LUN_MAP中,每个LUN都有一份LUN_MAP。EVA存储将LUN_MAP分别存放在不同的磁盘中,使用一个索引来指定其位置。在每个磁盘中找这个指向LUN_MAP的索引就可以找到现存LUN的信息了。
4、脱离EVA磁盘组的磁盘中存放一些旧的数据,在生成数据的时候需要将这些磁盘都排除掉。由于本案例LUN中RAID都是RAID5阵列,只需要将一个LUN的RAID条目通过RAID5的校验算法算出校验值,再和原校验值做比较就可以判断这个条目中是否有掉线盘。将一个LUN的所有LUN_MAP都校验一遍就可以知道这个LUN中哪些RAID条目中有掉线盘。在这些RAID条目中都存在的那块磁盘一定就是掉线盘。排除掉线盘,根据LUN_MAP恢复所有LUN的数据即可。
5、北亚企安数据恢复工程师编写扫描LUN_MAP的程序扫描全部LUN_MAP,结合人工分析得出最精确的LUN_MAP。编写检测RAID条目的程序检测所有LUN中掉线的磁盘,结合人工分析排除掉线的磁盘。编写LUN数据恢复程序,结合LUN_MAP恢复所有LUN数据。
6、恢复出所有LUN的数据后人工核对每个LUN,确认是否和用户方描述的一致。
恢复出来的部分LUN数据:

7、分析恢复出来的LUN,重组ASM磁盘组,解析ASM磁盘组。
分析每个LUN前端的结构数据,根据ASM磁盘组结构来区分哪些LUN是属于ASM磁盘组的。分析后发现共有2套ASM磁盘组。
每个磁盘组包含的LUN中的分区的情况:

使用ASM结构解析工具解析和修复每个磁盘组,解析出ASM磁盘组中存放的所有数据库文件。

8、分别按照文件类型分组导出解析出的数据库文件&初步检测导出的文件。

9、根据用户方的描述,所有LUN的数据分成两部分:一部分是Vmware的虚拟机;一部分是ORACLE上的ASM磁盘组数据,ASM磁盘组中存放的是Oracle的dbf数据库文件。人工核对哪些LUN是存放Vmware数据,哪些LUN是存放ASM磁盘组数据,然后将LUN挂载到不同的验证环境中验证恢复的数据是否完整。
10、将所有符合vmware虚拟机的LUN里面的虚拟机文件都生成出来,然后通过NFS共享的方式挂载到虚拟主机上,再将虚拟机一个一个的添加到清单。
恢复的部分虚拟机文件:

11、通过NFS将所有虚拟机都添加到虚拟主机以后,将所有虚拟机都加电开机,系统都能正常启动。验证虚拟机里面的数据都没有问题。
部分虚拟机:

12、根据甲方工程师提供的环境信息搭载Oracle数据库验证环境。
  a. 环境检测
  # uname -all
  然后检查各部分存储空间信息,保证空间足够。
  b. 检测安装依赖包
  根据安装说明“  b19068.pdf  ”,检查 oracle10g 所需的补丁包。
  检测:
  # swlist-l bundle |grep "GOLD"
  # swlist-l patch |grep PHNE_31097
  如果没有检测到的,需要到官方网站下载并安装。 安装补丁包:
  swinstall -s /patchCD/GOLDQPK11i -x autoreboot=true -x patch_match_target=true
  c. 创建用户及组
  #groupadd dba
  #useradd -g dba -d /home/oracle oracle/frombyte
  #passwd oracle
  d. 创建目录并修改权限
  创建目录:
  #mkdir –p/opt/oracle/product/10.2/oracledb/
  #chown -R oracle:dba/opt/oracle
  修改权限:
  #chown oracle:dba/usr/oracle_inst/database/frombyte.com
  #chmod 755/usr/oracle_inst/database/frombyte.com
  e. 设置环境变量
  vi /home/oracle/.profile
  f. 安装oracle
  Oracle的安装要求起图形界面,所以要先测试图像界面能正常启动。
  #exoprt  DISPLAY=192.168.0.1.0:0
  $./runInstaller
  图像界面起来之后,先只安装软件,不安装实例。
  g. 测试数据库连接
  #su - oracle
  $sqlplus / as syssdba
13、通过oracle官方检测工具DBV对导出的数据文件进行物理结构检测。

经过验证,确认所有文件结构正确,没有结构性损坏。
14、因为原来数据库实例有2个且使用的ASM存储,所以要按照原来配置和命名创建数据库实例。修改控制文件中的路径,让oracle识别到这些数据库数据文件,然后启动数据库。
dmis数据库启动截图:

gsm数据库启动截图:

整个启动过程正常,没有任何报错,基本上可以判断数据库恢复完好。
15、验证所有数据没有问题后,将vmware虚拟机文件和Oracle数据库文件拷贝至两块硬盘中,然后移交给用户方。
用户方将数据上传至后台,经过检测,程序可正常运行。用户方认可数据恢复结果。
运行情况:

运行规定:

运行变更摘要:

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

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

相关文章

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…

Qt中 QWidget 和 QMainWindow 区别

QWidget 用来构建简单窗口 QMainWindow 用来构建更复杂的窗口,QMainWindow 继承自QWidget,在QWidget 的基础上提供了菜单栏、工具栏、状态栏等功能 菜单栏(QMenuBar)工具栏(QToolBar)状态栏(Q…

【三维重建】Semantic Gaussians:开放词汇的3DGS场景理解

文章目录 摘要一、引言二、主要方法1.3D Gaussian Splatting2.其他方法2.1 Gaussian Grouping(ECCV 2024)2.2 GARField 3. 2D Versatile 投影4. 3D Semantic Network4. 推理 四、实验1. 实验设置2.定量结果 论文:https://arxiv.org/pdf/2403.…

centos7的maven配置

首先进入conf配置文件夹下的setting.xml 要改两个地方 第一&#xff1a;设置镜像源 <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>https://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>c…

思考:linux Vi Vim 编辑器的简明原理,与快速用法之《 7 字真言 》@ “鱼爱返 说 温泉哦“ (**)

Linux vi/vim | 菜鸟教程 https://zhuanlan.zhihu.com/p/602675406 Linux Vim编辑器的基本使用_vim文本编辑器-CSDN博客 思考 1. 记忆公式&#xff1a; 按键操作的 7 字真言 1&#xff1a; "鱼爱返 说 温泉哦" v i Esc : wq ! ----------- 一般的简单…

Web服务nginx基本实验

安装软件&#xff1a; 启动服务&#xff1a; 查看Nginx服务器的网络连接信息&#xff0c;监听的端口&#xff1a; 查看默认目录&#xff1a; 用Windows访问服务端192.168.234.111的nginx服务&#xff1a;&#xff08;防火墙没有放行nginx服务&#xff0c;访问不了&#xff09; …

Ubuntu实现双击图标运行自己的应用软件

我们知道在Ubuntu上编写程序&#xff0c;最后编译得到的是一个可执行文件&#xff0c;大致如下 然后要运行的时候在终端里输入./hello即可 但是这样的话感觉很丑很不方便&#xff0c;下边描述一种可以类似Windows上那种双击运行的实现方式。 我们知道Ubuntu是有一些自带的程序…

x-cmd pkg | onefetch - 轻松获取 Git 仓库统计信息,打造个性化输出!

目录 简介首次用户功能特点常见用法类似或相关的工具进一步阅读 简介 onefetch 是由 Ossama Hjaji 用 Rust 编写的命令行 Git 信息工具&#xff0c;可将本地 Git 存储库的项目信息和代码统计信息直接显示到您的终端。该工具完全离线 - 不需要网络访问。 首次用户 本文的 dem…

基于IM场景下的Wasm初探:提升Web应用性能|得物技术

一、何为Wasm &#xff1f; Wasm&#xff0c;全称 WebAssembly&#xff0c;官网描述是一种用于基于堆栈的虚拟机的二进制指令格式。Wasm被设计为一个可移植的目标&#xff0c;用于编译C/C/Rust等高级语言&#xff0c;支持在Web上部署客户端和服务器应用程序。 Wasm 的开发者参…

现场工程师日记-MSYS2迅速部署PostgreSQL主从备份数据库

文章目录 一、概要二、整体架构流程1. 安装 MSYS2 环境2. 安装postgresql 三、技术名词解释1.MSYS22.postgresql 四、技术细节1. 创建主数据库2.添加从数据库复制权限3. 按需修改参数&#xff08;1&#xff09;WAL保留空间&#xff08;2&#xff09;监听地址 4. 启动主服务器5.…

【CSS】标准怪异盒模型

概念 CSS 盒模型本质上是一个盒子&#xff0c;盒子包裹着HTML 元素&#xff0c;盒子由四个属性组成&#xff0c;从内到外分别是&#xff1a;content 内容、padding 内填充、border 边框、外边距 margin 盒模型的分类 W3C 盒子模型(标准盒模型) IE 盒子模型(怪异盒模型) 两种…

Android中桌面小部件framework层使用到的设计模式

在Android中&#xff0c;桌面小部件&#xff08;App Widget&#xff09;的Framework层采用了多种设计模式&#xff0c;以实现模块化、可维护性和高效的交互。 以下是Android桌面小部件Framework层中常用的设计模式及其具体应用&#xff1a; 1. 观察者模式&#xff08;Observe…

半波正弦信号的FFT变换

目录 Hello&#xff0c; 大家好&#xff0c;这一期我们谈谈半波正弦信号的FFT变化长什么样子。本文硬件使用GFARM02硬件模块[1]&#xff0c;文章最后有其淘宝链接。核心器件为STM32F103RCT6&#xff0c;为Cortex-M3核&#xff0c;采用的CMSIS版本为CMSIS_5-5.6.0。 如图1所示&…

基于SpringBoot和Vue的公司文档管理系统设计与开发(源码+定制+开发)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

Linux服务器或Linux计算机设置不记录历史命令

1.设置环境变量 打开命令终端&#xff0c;编辑.bashrc文件中&#xff0c;修改HISTSIZE和HISTFILESIZE都为0 sudo nano ~/.bashrcfor setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE0 HISTFILESIZE0 2.生效 source ~/.bashrc 3.验证 cat ./b…

接口测试用例设计的关键步骤与技巧解析!

简介 接口测试在需求分析完成之后&#xff0c;即可设计对应的接口测试用例&#xff0c;然后根据用例进行接口测试。接口测试用例的设计也需要用到黑盒测试用例设计方法&#xff0c;和测试流程与理论章节的功能测试用例设计的方法类似&#xff0c;设计过程中还需要增加与接口特…

【数据集】【YOLO】【目标检测】树木倒塌识别数据集 9957 张,YOLO道路树木断裂识别算法实战训练教程!

一、数据集介绍 【数据集】树木倒塌识别数据集 9957 张&#xff0c;目标检测&#xff0c;包含YOLO/VOC格式标注。 数据集中包含1种分类&#xff1a;{0: fallen_tree}&#xff0c;代表倒塌或者断裂的树木。 数据集来自国内外图片网站和视频截图&#xff1b; 可用于无人机树木…

[极客大挑战 2019]PHP 1

[极客大挑战 2019]PHP 1 审题 猜测备份在www.zip中&#xff0c;输入下载文件。 知识点 反序列化 解题 查看代码 看到index.php中包含了class.php,直接看class.php中的代码 查看条件 当usernameadmin&#xff0c;password100时输出flag 构造反序列化 输入select中&#…

网络层5——IPV6

目录 一、IPv6 vs IPv4 1、对IPv6主要变化 2、IPv4 vs IPv6 二、IPv6基本首部 1、版本——4位 2、通信量类——8位 3、流标号——20位 4、有效载荷长度——16位 5、下一个首部——8位 6、跳数限制——8位 7、源 、 目的地址——128位 8、扩展首部 三、IPv6地址 1…

第八篇: 通过使用Google BigQuery进行数据批量和自动化处理

使用Python进行Google BigQuery数据批量和自动化处理 在大数据分析的日常工作中&#xff0c;定期更新、查询和处理数据是一项必不可少的任务。Google BigQuery结合Python脚本&#xff0c;可大幅简化这一过程。本文将介绍如何通过Python自动查询和更新BigQuery中的降水量数据&a…