RAID5重建失败的服务器数据恢复案例

news2024/11/16 19:28:20

服务器数据恢复环境:
一台IBM某型号服务器,4块SAS磁盘组建了一组RAID5磁盘阵列。服务器安装的windows server操作系统,上面运行了一个Oracle单节点,数据存储为文件系统,无归档。该oracle数据库的数据量不大,只有一个用户,使用默认的users表空间,users空间下只有一个不大的数据文件。

 

服务器故障:
由于服务器超负荷运行,RAID5磁盘阵列出现问题。为了保证服务器能正常稳定运行,工作人员做了重建RAID的操作,在重建RAID过程中由于RAID中的一块磁盘出现故障,RAID初始化中止,少量数据被同步而破坏,但是RAID5磁盘阵列已经可以访问。
服务器操作系统虽然出现错误,但还能正常启动。oracle数据库所在D盘分区报错无法打开,工作人员做了chkdsk后能正常打开D盘分区,但oracle数据库无法启动。工作人员在D盘上重装了oracle数据库并导入了以前备份的dmp文件,但数据和出故障前的oracle数据库数据相差太多。

 

服务器数据恢复过程:
1、将故障服务器中所有磁盘编号后取出,以只读方式进行全盘镜像备份,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘数据造成二次破坏。
2、基于镜像文件分析RAID。因为重建RAID会给数据造成严重的破坏,但经过对底层数据的分析发现重建的RAID的块大小、盘序都和原来的RAID一致。在初始化过程中仅同步了前面部分的少量数据,RAID数据损坏不大,数据库还没被破坏。
3、Chkdsk并不会破坏用户数据区,chkdsk只对文件系统元数据区进行修改。执行chkdsk操作后oracle数据库文件没有被破坏,最多只是文件的MFT或目录项被破坏。真正对数据破坏严重的操作是重装Oracle数据库和导入dmp文件,这一系列操作不仅对文件系统元数据区造成了破坏,还将用户数据区进行了覆盖。
4、基于镜像文件分析D盘的NTFS文件系统,发现所有原oracle数据文件的MFT均被覆盖,NTFS日志也被轮回覆盖,从NTFS元数据区找不到可利用信息。数据恢复工程师只能使用北亚企安自主研发的Oracle恢复程序对整个D盘分区进行恢复。
5、经过程序的扫描,发现Oracle实例为ANSORA,扫描出一个原始完整的控制文件和一个原始完整的undotbs表空间数据文件。重要的system和users表空间数据文件都被不同程度的破坏:其中system表空间的数据文件仅剩中后部的十多MB,原始文件应该约有几百MB;users表空间的数据文件有部分被覆盖,仅剩几
MB。提取出找到的数据,然后对损坏严重的数据库进行修复。
6、由于system表空间不可用,无法得到数据字典。经过沟通,用户方确认了有重要的三张表,从imp回去的数据库中获取到这三张表的结构,再从恢复users表空间的数据文件中找到对应的segment。但有一张表无法对应上,再次沟通得知这一张表有过更改字段的操作,北亚企安数据恢复工程师只能重新构建新的表结构对应上users表空间数据文件中segment,然后通过dul工具提取这三张表的数据。
7、提取完成数据后由用户方工程师进行验证,经过反复验证,用户方工程师确认恢复出来的数据有效。本次数据恢复工作完成。

 

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

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

相关文章

Python爬虫——批量下载微信公众号图片

目标: 微信公众号是现代社交媒体中最受欢迎的平台之一,每天都有数以百万计的人在浏览不同的公众号,其中大部分都包含了图片内容。如果你是一位公众号的管理员或者粉丝,你可能想要在本地保存一些感兴趣的图片。但是,微…

GIT下载安装

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

函数中的 static int 变量

#include <iostream>using namespace std;void function( ) {static int a 3 ; // 不赋值的话是 a 等于0&#xff1b;cout<<"a"<<a<<endl;aa3;cout<<"a"<<a<<endl;}int main(int argc, char** argv) {cout&l…

Apache DolphinScheduler 荣获“掘进技术引力榜”「2023 年度 ROBUST 开源项目」奖项!

经过紧张激烈的投票和严格的专家评审环节&#xff0c;“掘进技术引力榜”活动在上周的稀土掘金开发者大会上公布了「2023 年度 ROBUST 开源项目」奖项的获奖名单&#xff0c;Apache DolphinScheduler 名列其中。 Apache DolphinScheduler 代表上台领奖&#xff08;右三&#x…

蓝桥杯专题-真题版含答案-【蚂蚁感冒】【地宫取宝】【波动数列】【李白打酒】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Java开发的打包和分发机制之jar包

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于jar包的相关操作吧 一.什么是jar包 "jar包"是Java Archive的缩写&#xff0c;它是一种用于打包Java类、资源文件、库等内容的文件格式Jar包是一种特…

flutter聊天界面-聊天气泡长按弹出复制、删除按钮菜单

flutter聊天界面-聊天气泡长按弹出复制、删除按钮菜单 在之前实现了flutter聊天界面的富文本展示内容&#xff0c;这里记录一下当长按聊天气泡的时候弹出复制、删除等菜单功能 一、查看效果 当长按聊天气泡的时候弹出复制、删除等菜单&#xff0c;可新增更多按钮 二、代码实现…

【网络安全带你练爬虫-100练】第8练:json数据的最小项提取

目录 一、目标1&#xff1a;爬取指定json中数据 二、目标2&#xff1a;循环取json中数据 三、目标3&#xff1a;提取每个数据中的某一项 四、网络安全小圈子 一、目标1&#xff1a;爬取指定json中数据 爬取data里数据 核心代码&#xff1a; dirt1 json.loads(res.text)pr…

奉劝各位项目经理,最好别参加8月PMP考试了……

早上好&#xff0c;我是老原。 上周我看到一篇介绍考证的文章&#xff0c;结果在热评看到了PMP证书。 不得不承认&#xff0c;PMP证书现在的火热程度已经超过了我们的想象。前几年我选择考PMP&#xff0c;也只是为了在求职的时候多个优势。 但是现在&#xff0c;几乎我周围所…

ThreadLocal使用场景介绍以及关于内存泄漏的探讨

目录 1. 使用场景一&#xff1a;线程隔离 2. 使用场景二&#xff1a;使用ThreadLocal进行跨函数数据传递 3. ThreadLocal导致的内存泄漏问题 4. ThreadLocal在Spring框架中的应用 5. 扩展&#xff1a;InheritableThreadLocal 转载&#xff1a;【Java】ThreadLocal使用场景…

字节、数据位、ascii码、RS232串口、modbus协议

RS232通信协议详解 - 百度文库 ASCII_百度百科 ascii码表 modebus协议 - 百度文库https://wenku.baidu.com/view/58aae6134431b90d6c85c7b6.html?_wkts_1688713246949&bdQueryascii%E7%A0%81modelbus%E7%A0%81 Modbus 的RTU、ASCII、TCP傻傻搞不清楚&#xff1f;一文全…

归并排序的应用—逆序对的个数

一、&#xff08;题目&#xff09; 给定一个长度为 n 的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i个和第 j 个元素&#xff0c;如果满足 i<j且 a[i]>a[j]&#xff0c;则其为一个逆序对&#xff1b;否则不是。 输…

吐血整合!风控与反欺诈相关数据来源(上)

本文会分上、下两篇&#xff0c;介绍各种风控与反欺诈相关的数据来源&#xff0c;包括其主要的数据维度和产品服务形态。 目录&#xff1a; 人行二代征信 持牌征信机构数据 司法大数据 航旅大数据 铁路大数据 税务大数据 交通大数据 电力大数据 保险大数据 人社大数据 一、人行…

vs2019打包发布c#编写的exe应用

由于该应用还要引用其它的exe应用&#xff0c;所以 .NET Framework 4.6.2 脱机安装程序Windows - Microsoft 支持 参考下面的配置即可 VS2019如何打包程序_vs2019 打包_咻咻咻...的博客-CSDN博客https://blog.csdn.net/qq_37043193/article/details/119530253?ops_request_…

JVM源码剖析之Java对象创建过程

关于 "Java的对象创建" 这个话题分布在各种论坛、各种帖子&#xff0c;文章的水平参差不齐。并且大部分仅仅是总结 "面试宝典" 的流程&#xff0c;小部分就是copy其他帖子&#xff0c;极少能看到拿源码作为论证。所以特意写下这篇文章。 版本信息如下&…

搭建帮助中心5大注意事项

在现代互联网时代&#xff0c;为企业网站建立一个优雅实用的网站帮助中心变得尤为重要。一个好的网站帮助中心可以帮助企业解决客户的难点、痛点&#xff0c;提高客户满意度、期待值&#xff0c;从而更好地留住客户&#xff0c;增加收入。 如果没有帮助中心或者是帮助中心创建…

深入理解链表:一种动态的线性数据结构

文章目录 前言1. 概述2. 单向链表3. 单向链表&#xff08;带哨兵&#xff09;4. 双向链表&#xff08;带哨兵&#xff09;5. 环形链表&#xff08;带哨兵&#xff09;6. 结语 前言 链表是我们在日常编程中经常使用的一种数据结构&#xff0c;它相比于数组具有更好的动态性能。…

Spark(17):RDD、DataFrame、DataSet三者的关系

目录 0. 相关文章链接 1. 三者的产生 2. 三者的共性 3. 三者的区别 3.1. RDD 3.2. DataFrame 3.3. DataSet 4. 三者的互相转换 4.1. 互相转换图 4.2. DataFrame 和 DataSet 转换 0. 相关文章链接 Spark文章汇总 1. 三者的产生 在 SparkSQL 中 Spark 为我们提供了两…

Flutter TextField 输入框 简单使用

创建方式一&#xff1a; ///用于文本输入框 TextEditingController controller new TextEditingController();/// 设置TextField中显示的内容void setEditeInputTextFunction(String flagText) {controller .text flagText;}/// 清除TextField中显示的内容void clearEditeIn…

Web服务器群集:podman与docker技术集群

目录 一、理论 1.虚拟化 2.容器 3.podman 4.docker 5.podman与docker区别 二、实验 1.部署podman 2.部署docker 三、总结 一、理论 1.虚拟化 &#xff08;1&#xff09;概念 虚拟化&#xff1a;将应用程序和系统内核资源进行解耦&#xff0c;以操作系统级别进行隔离…