【服务器数据恢复】NetApp存储中的oracle数据库数据恢复案例

news2025/1/17 0:57:41

服务器数据恢复环境:
NetApp某型号存储,共96块SAS硬盘,划分的lun都映射给小型机使用,存放的是Oracle数据库文件,采用ASM裸设备存储方式。

服务器故障:
管理员误操作删除了该NetApp存储上的所有lun。具体情况是:工作人员给NetApp存储设备重新划分空间,直接把存储的卷全部删除并进行重新分配。在删除所有卷后还没有来得及分配的时候,上层业务就出现异常。运维工程师紧急排查故障情况,发现业务服务器上的磁盘都不见了,无法访问数据。

服务器数据恢复过程:
1、为了预防在数据恢复过程中可能对原始磁盘数据造成的二次破坏,将该NetApp存储上的每块磁盘以只读方式做完整镜像。后续所有的数据分析和数据恢复操作都在镜像文件上进行。
2、基于镜像文件分析Netapp存储数据。
a、分析盘序和LVM的组成方式;
b、扫描硬盘内的所有节点,一般只扫描“MBFI”。
c、在节点扫描结果中找到文件大小符合需求的节点并提取此节点uid,并判断索引根。
d、根据索引根内的第一级数据指针提取本文件的所有直接数据指针(需要参考节点中0x03位置的MAP深度。为0x00时直接从节点内提取数据,为0x01时需要提取一次MAP,为0x02时需要提取两次MAP......)。在指针提取完毕后开始提取文件数据。
3、解析超级块。在硬盘的前面扇区的位置找到超级块相关信息,从超级块中获取到磁盘组名字、磁盘组的逻辑起始块号、总块数、磁盘组中raid的编号。
netapp超级块信息:

4、剔除校验盘。
每个数据块占8个扇区,数据块后附加64字节数据块描述信息。根据这些信息可以判断出作为校验盘(提取数据时校验盘需剔除)的磁盘。
校验块描述信息:

5、判断aggr盘。
确定各个磁盘所属aggr组,然后判断组内盘序(依据每块磁盘8号扇区的磁盘信息以及磁盘末尾的RAID盘序表确定盘序)。数据指针跳转时不考虑校验盘,所以只取得数据盘的盘序即可。
netapp盘序表:

6、分析节点及节点头部信息。
Netapp的节点分布在数量众多的数据块内,在数据块内又被统一组织为节点组。每个节点组的前半部分字节记录系统数据,后半部分字节记录各个文件节点。根据用户级别可将节点分为两类:“MBFP”系统文件节点和“MBFI”用户文件节点,在数据恢复时一般只取MBFI节点组即可。
netapp节点样:

7、获取目录项,并根据目录项节点编号找到对应节点。
目录项信息:

8、分析出该Netapp存储结构后,用北亚企安自研的NetApp解析程序解析asm文件系统,提取出oracle数据库文件。

9、搭建小机环境并安装oracle数据库,检测提取出来的数据库文件和备份文件。
10、使用提取出的数据库文件启动oracle数据库,启动正常。
11、使用最新的数据库备份文件还原数据库,然后由用户方亲自进行验证,经过反复验证,用户方确认恢复出来的oracle数据库数据完整可用,数据恢复工作完成。

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

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

相关文章

【Java】Java绘制UML图

1.继承关系(Inheritance) 继承指的是一个类(子类、子接口)继承另外的一个类(父类、父接口)的功能,通过关键字 extends 明确标识 UML图 继承用一条带空心三角箭头的实线表示,从子类…

数字孪生可实现三维可视化智慧园区吗?

随着城市化的进程和信息化的发展,越来越多的城市拥有了智慧园区这一新的城市形态,通过“互联网”和物联网技术,实现了各种功能部门之间的信息共享与协同,提高了园区服务的质量和效率。然而,如何更好地实现园区管理和运…

DNS服务的正反向解析

目录 1.DNS域名解析服务概括 产生原因 作用: 2.正向解析 2.1 准备工作,关闭selinux和防火墙 2.2 安装DNS软件 2.3 服务端操作,编辑DNS主配置文件 2.4 服务端操作,编辑区域配置文件,可以在最后添加&#xff0c…

OpenAI文档翻译——搭建第一个自己的ChatGPT应用

这篇主要是讲了重头到位创建一个基于OpenAI API的应用程序的过程,同时给出了Node.js、Python版本的实例代码。应用程序的构建总体来说是很简单的就是一个接口调用,前提是我们需要提供密匙。 如果想要获取更好的结果返回一个是可以给模型提供一些列子从而…

9.5 数组的指针和指向数组的指针变量-2

9.5 数组的指针和指向数组的指针变量-2 一.数组名作为函数参数(1)实参和形参都是数组名(2)实参用数组名,形参用指针变量(3)实参和形参都用指针变量,这个和(2)…

Leetcode-day1【80】删除有序数组中的重复项 II

文章目录 80. 删除有序数组中的重复项 II题目解题思路解题思路【学习】双指针 80. 删除有序数组中的重复项 II 题目 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。…

CBAM小陈读paper系列

忘记做笔记了,只能 把看文章的PDF保存下来了

神经网络:Zero2Hero 1

Zero → \to → Hero : 1 实现了一个字符级中文语言模型,数据采用的是开源中文姓名数据集中的一部分,主要内容如下: 字符的预处理 统计频次计算字符对频次矩阵 实现一个简单的先验概率模型 从训练数据中计算字符的先验概率根据先验概率通过…

前端UI框架有哪些|20个优秀免费开源的WEB前端UI框架提高网站开发效率

最近准备学习一下前端UI我也是在网上找了很久最终整理出来了20个不错的前端UI框架网站,大家都知道很多成熟的前端框架可以直接引,学习框架可以提升我们网站的开发速度。有些大型公司的前端或者后端框架都是用自己开发的,对于大部分用户和公司来讲,我们可以用开源免费的前端…

TCP和UDP通信对比

tcp通信流程 服务器: 创建流式套接字 绑定 监听 提取 读写 关闭 客户端: 创建流式套接字 连接 读写 关闭 收发数据: read recv ssize_t recv(int sockfd, void *buf, size_t len, int flags); //flagsMSG_PEEK 读数据不会删除缓冲区的数据 write send ssize_t send(int…

【Paper Note】ViViT: A Video Vision Transformer

ViViT: A Video Vision Transformer AbstractOverview of vision transformer 回顾ViTEmbedding video clips 视频编码方式Uniform frame sampling 均匀采样Tubelet embedding 时空管采样初始化3D卷积代码介绍视频编码输入到模型当中 Transformer Models for VideoSpatio-tempo…

安全测试(linux基线排查)看这一篇就够了

前言部分: 作为一个安全测试人员,在确保WEB应用程序没有漏洞外,应该也需要关注一下主机环境的安全,因为应用程序部署在主机环境提供运行环境,也应当关注一下主机环境的安全。于此,通过学习本次对linux安全加…

香橙派pi5下,debian,docker19.03.9版本runc容器逃逸

在香橙派pi5下,debian,docker19.03.9版本下,安装系统后,启动docker,显示一切正常。 当加入k8s集群以后,可以正常连接到集群,node状态显示为ready。看起来一切正常。不过过一会之后,香橙派节点内存飙升,然后挂掉。重连失败,需要重启后才能重连。且swapoff -a命令执行…

C++之深入解析C++20协程的原理和应用

一、无栈协程成为 C20 协程标准 协程分为无栈协程和有栈协程两种,无栈指可挂起/恢复的函数,有栈协程则相当于用户态线程。有栈协程切换的成本是用户态线程切换的成本,而无栈协程切换的成本则相当于函数调用的成本;无栈协程和线程…

个人写校园点评项目的笔记

目录 ​编辑 1.解决短信登陆--2023.4.14 redis 数据类型 阿里云短信服务 存入redis的key和value 流程 dto的意义 给token设置有效期 拦截器的类没有交给Spring Constants 2.商户查询缓存(不采用SpringCache,而是尝试原理实现) 20…

Spring Cloud Alibab --Seata

事务特性 A(Atomic):原子性,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的情况。 C(Consistency):一致性,在事…

Tarjan算法求割点和桥

先进行一些定义,假设目前有一个无向连通图 割点:某点及其边去掉后,图不再连通 桥:某条边去掉后,图不再联通 tarjan算法求割点 不考虑子结点到父结点的情况 dfn(x) x实际杯访问的时间点 low(x) x通过图可回溯到的最…

22从零开始学Java之你知道return、break与continue的区别吗?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在上一篇文章中,壹哥给大家介绍了while、do-while两种循环结构,并且给大家总结…

KubeSphere 社区双周报 | OpenFunction 支持 Dapr 状态管理 | 2023.03.31-04.13

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2023.03.31-2023.…

测试工具之JMH详解

文章目录 1 JMH1.1 引言1.2 简介1.3 DEMO演示1.3.1 测试项目构建1.3.2 编写性能测试1.3.3 执行测试1.3.4 报告结果 1.4 注解介绍1.4.1 BenchmarkMode1.4.2 Warmup1.4.3 Measurement1.4.4 Threads1.4.5 Fork1.4.6 OutputTimeUnit1.4.7 Benchmark1.4.8 Param1.4.9 Setup1.4.10 Te…