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

服务器数据恢复—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数据库文件拷贝至两块硬盘中,然后移交给用户方。
用户方将数据上传至后台,经过检测,程序可正常运行。用户方认可数据恢复结果。
运行情况:

运行规定:

运行变更摘要:

相关文章:

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

服务器存储数据恢复环境: 一台EVA某型号控制器EVA扩展柜FC磁盘。 服务器存储故障&检测: 磁盘故障导致该EVA存储中LUN不可用,导致上层应用无法正常使用。 服务器存储数据恢复过程: 1、将所有磁盘做好标记后从扩展柜中取出。硬…...

支持向量机相关证明 解的稀疏性

主要涉及拉格朗日乘子法,对偶问题求解...

静态ip和动态ip适合什么场景

静态住宅ip由于他的ip位置保持不变的,更加适合: 1、账号管理。 使用静态住宅来注册和管理社交媒体账号,例如facebook、领英等,包括电商类的账号也是可以的,例如亚马逊等 2、网站测试 很多网站会检测使用者是否为机器…...

Istio Gateway发布服务

1. Istio Gateway发布服务 在集群中部署一个 tomcat 应用程序。然后将部署一个 Gateway 资源和一个与 Gateway 绑定的 VirtualService,以便在外部 IP 地址上公开该应用程序。 1.1 部署 Gateway 资源 vim ingressgateway.yaml --- apiVersion: networking.istio.…...

前端vue3若依框架pnpm run dev启动报错

今天前端vue3若依框架pnpm run dev启动报错信息: > ruoyi3.8.8 dev D:\AYunShe\2024-11-6【无锡出门证】\wuxi-exit-permit-web > vite error when starting dev server: Error: listen EACCES: permission denied 0.0.0.0:80 at Server.setupListenHand…...

python线条爱心

效果图 代码 import math from turtle import * def hearta(k):return 15*math.sin(k)**3 def heartb(k):return 12*math.cos(k)-5*\math.cos(2*k)-2*\math.cos(3*k)-\math.cos(4*k) speed(1000) bgcolor("black") for i in range(6000):goto(hearta(i)*20,heartb(…...

GPU的内存是什么?

GPU(图形处理器)的内存是指专门用于 GPU 存储数据的内存,也被称为显存。 一、显存的作用: 1、存储图像数据 当计算机要显示图像时,显存会存储屏幕上每个像素点的颜色、亮度等信息。例如,对于一个分辨率为 1…...

Linux - 弯路系列1:xshell能够连接上linux,但xftp连不上(子账号可以连接,但不能上传数据)

问题如题目阐述。 注:所有操作在root账户下操作。 解决办法: 1、确认连接设置 服务器地址和端口:确保在 Xftp 中输入的服务器地址和端口号与 Xshell 使用的相同。默认情况下,SFTP 使用端口 22。 用户凭证:检查用户名…...

数组逆序重存放

题目描述 将一个数组中的值按逆序重新存放。例如&#xff0c;原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。 输入 输入为两行&#xff1a;第一行数组中元素的个数n&#xff08;1<n<100)&#xff0c;第二行是n个整数&#xff0c;每两个整数之间用空格分隔。 输出 输出…...

归并排序:高效算法的深度解析

一、归并排序概述 归并排序是一种基于分治思想的经典排序算法。它的核心操作分为三个主要步骤&#xff1a;分割、排序和合并。 首先是分割步骤&#xff0c;将待排序的数组不断地分成更小的子数组&#xff0c;直到每个子数组中只有一个元素。例如&#xff0c;对于一个包含多个…...

微服务中常用分布式锁原理及执行流程

1.什么是分布式锁 分布式锁是一种在分布式系统环境下实现的锁机制&#xff0c;它主要用于解决&#xff0c;多个分布式节点之间对共享资源的互斥访问问题&#xff0c;确保在分布式系统中&#xff0c;即使存在有多个不同节点上的进程或线程&#xff0c;同一时刻也只有一个节点可…...

声学气膜馆助力企业年会与研学活动完美呈现—轻空间

在现代企业和教育活动中&#xff0c;场地的选择往往决定了活动的成败。尤其是在企业年会、研学基地等重要场合&#xff0c;选择一个既能满足多功能需求又能快速搭建的场地至关重要。而声学气膜馆正是为这种需求量身打造的理想场所。凭借其独特的声学性能和灵活的结构设计&#…...

Halcon3D image_points_to_world_plane详解

分三个部分来聊聊这个算子 一,算子的参数介绍 二,算法的计算过程 三,举例实现 第一部分,算子的介绍 image_points_to_world_plane( : : CameraParam, WorldPose, Rows, Cols, Scale : X, Y) 参数介绍: CameraParam,:相机内参 WorldPose 世界坐标系,也叫物体坐标系(成…...

A Consistent Dual-MRC Framework for Emotion-cause Pair Extraction——论文阅读笔记

前言 这是我第一次向同学院同年级的学生和老师们汇报的第一篇论文,于2022年发表在TOIS上,属于CCF A类,主要内容是将MRC应用到情感原因对抽取中。 论文链接:用于情绪-原因对提取的一致双 MRC 框架 |信息系统上的 ACM Transactions 这里我就不放上我自己翻译的中文版还有我…...

如何debug(Eclipse)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 2分钟教会你如何Java中DeBug【IDEA中Java】 在eclipse中如何使用Debug进行调试 双击左侧打断点(取消断点同样双击) 右上角进入debug界面(常用) 选择所需断点位置(勾选右侧需要测试的断点位置) 启动…...

【comfyui教程】ComfyUI有趣工作流推荐:快速换脸,创意随手掌握!

前言 在数字影像处理和创意表达领域&#xff0c;ComfyUI 绝对是你的得力助手&#xff01;今天我们推荐一个非常有趣的工作流——快速换脸。无论你是图像编辑小白&#xff0c;还是深耕AI影像的达人&#xff0c;这个工作流都能让你快速实现面部迁移&#xff0c;体验全新的照片玩…...

css-flex布局属性

flex 布局的优势 flex 布局的子元素不会脱离文档流flex 是一种现代的布局方式&#xff0c;是 W3C 第一次提供真正用于布局的 CSS 规范 弹性盒子、子元素 弹性盒子&#xff1a;指的是使用 display:flex 或 display:inline-flex 声明的父容器 声明&#xff1a;使用 display:fl…...

【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(下)

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;上&#xff09; 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;下&#xff09; 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇&#xff08;上&#xff09; 【…...

高阶函数--python

高阶函数应当满足至少下面一个条件&#xff1a; 接受一个或多个函数参数 输出一个函数 下面用一个例子来理解高阶函数。 一、高阶函数 先看一个简单的函数 例一&#xff1a; 例二&#xff1a; 是高阶函数&#xff0c;因为满足条件&#xff0c;返回一个函数 并且有闭包&a…...

MYSQL备库的并行复制

备库在消费中转日志时&#xff0c;其实可以分多个线程同时对多个事务进行消费&#xff0c;但是要满足2个基本原则&#xff1a; 1.涉及同一行数据的多个事务必须在同一个线程中执行&#xff0c;否则会导致数据不一致 2.同一个事务不能被拆开 MYSQL 5.6的并行复制策略&#xff…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

StarRocks 全面向量化执行引擎深度解析

StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计&#xff0c;相比传统行式处理引擎&#xff08;如MySQL&#xff09;&#xff0c;性能可提升 5-10倍。以下是分层拆解&#xff1a; 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...

Java中HashMap底层原理深度解析:从数据结构到红黑树优化

一、HashMap概述与核心特性 HashMap作为Java集合框架中最常用的数据结构之一&#xff0c;是基于哈希表的Map接口非同步实现。它允许使用null键和null值&#xff08;但只能有一个null键&#xff09;&#xff0c;并且不保证映射顺序的恒久不变。与Hashtable相比&#xff0c;Hash…...

职坐标物联网全栈开发全流程解析

物联网全栈开发涵盖从物理设备到上层应用的完整技术链路&#xff0c;其核心流程可归纳为四大模块&#xff1a;感知层数据采集、网络层协议交互、平台层资源管理及应用层功能实现。每个模块的技术选型与实现方式直接影响系统性能与扩展性&#xff0c;例如传感器选型需平衡精度与…...

LeetCode - 148. 排序链表

目录 题目 思路 基本情况检查 复杂度分析 执行示例 读者可能出的错误 正确的写法 题目 148. 排序链表 - 力扣&#xff08;LeetCode&#xff09; 思路 链表归并排序采用"分治"的策略&#xff0c;主要分为三个步骤&#xff1a; 分割&#xff1a;将链表从中间…...

Linux【5】-----编译和烧写Linux系统镜像(RK3568)

参考&#xff1a;讯为 1、文件系统 不同的文件系统组成了&#xff1a;debian、ubuntu、buildroot、qt等系统 每个文件系统的uboot和kernel是一样的 2、源码目录介绍 目录 3、正式编译 编译脚本build.sh 帮助内容如下&#xff1a; Available options: uboot …...