很多工程师都有这样的疑问,MDisk重建后还能不能恢复数据呢?应该怎么做才能恢复数据呢?本文这里就以IBM V7000存储为例,详细讲解因为某个MDisk被重建导致的数据丢失的恢复方法。我们本案例中的存储由于MDisk重建导致对应的存储池中的VDisk丢失,从而影响上层Solaris操作系统中的Oracle数据库无法正常使用。

1、前期备份方法
由于对设备的分析和恢复均不在原始设备进行操作,所以首先我们需要把所有涉及到Oracle数据库的VDisk以只读模式链接到备份服务器,使用dd或Winhex等专业工具对映射过来的VDisk做只读模式的数据库备份。然后对重建后的MDisk成员盘进行排序标记并以正常模式取出IBM V7000磁盘柜,将取出的硬盘连接到专业的设备,并做只读模式的全盘镜像。等到所有备份完成以后再对所有链路及物理硬盘进行还原,后期分析和恢复均不在原始设备上操作。

2、MDisk及VDisk恢复方法
  A、对备份的MDisk成员盘做只读模式的数据分析,判断是否会因MDisk重建导致数据大量丢失。
  B、分析重建后RAID6的数据分布规则,并计算出RAID6的双校验均写到硬盘的具体位置。
  C、对RAID6双校验破坏的数据区域结合RAID10的数据分布规则,尽最大可能的还原重建前的MDisk。
  D、对恢复的MDisk做底层卷分析,取出精简模式的数据MAP,并校验数据MAP是否正常。
  E、根据精简模式的算法结合数据MAP,尽最大可能的还原VDisk。
  F、检测恢复的VDisk是否正常,否则重新分析A-E的步骤是否有无误。

3、数据库文件恢复及数据库文件修复
  A. 对恢复的VDisk及其他未损坏的VDisk做Oracle数据库页特征扫描,并生成相应的数据库文件的特征集。
  B. 根据数据库的特征集分析出数据库在所有VDisk中的数据分布MAP。
  C. 恢复数据库文件,并使用自主开发的Oracle数据库检测工具对恢复的数据库文件做文件一致性检测。
  D. 如数据库文件检测正常、数据库结构完整,则尝试启动数据库实例,同时监控状态。
  E. MOUNT数据库,查看数据库文件状态信息,查看数据库整体状态。尝试OPEN数据库,做实例恢复。
  F. 验证导出数据是否正确,否则重复A-E操作,之到数据正确为止。

4、MDisk重建数据恢复成功率预估
由于IBM V7000存储中某个MDisk被重建了,导致上层VDisk及Oracle数据库无法正常使用。如果MDisk重建后的类型为RAID6(之前为RAID10),就会导致部分数据破坏。按最差情况分析,会有2块盘(RAID6的双校验)的数据损坏(事实上,也不会完全损坏),从损坏VDisk层面,数据完整度超过75%。而上层Oracle又由多个VDisk组成,因此上层Oracle层面,数据完整度超过95%。

v7000数据恢复_MDisk重建数据恢复方法(北亚数据恢复)的更多相关文章

  1. 服务器磁盘阵列数据恢复,raid5两块硬盘掉线数据恢复方法

    [用户单位信息] 农业科学研究院某研究所 [磁盘阵列故障发生过程描述]客户的DELL MD1000服务器内置15块1TB硬盘搭建为RAID5磁盘阵列阵列,服务器在正常工作中有一块硬盘离线,管理员对磁盘 ...

  2. HP DL380服务器RAID信息丢失数据恢复方法和数据恢复过程分享

    [数据恢复故障描述]    客户服务器属于HP品牌DL380系列,存储是由6块73GB SAS硬盘组成的RAID5,操作系统是WINDOWS 2003 SERVER,主要作为企业部门内部的文件服务器来 ...

  3. V7000数据恢复(存储文件系统损坏)案例_北亚数据恢复

    我们今天介绍的数据恢复案例是一起 v7000存储文件系统损坏导致的数据丢失,首先简单介绍一下设备基本情况:发生文件系统损坏的是一台挂载在Windows2003服务器上的v7000存储,划分了一个容量为 ...

  4. Xen Server虚拟机数据恢复的方法和数据恢复过程

    在服务器运行过程中如果出现意外情况突然断电很容易引起服务器故障,服务器中的硬件设备损坏可以修复或者购买,但是服务器中的数据一旦发生故障丢失,对于企业来说将是不可估量的损失.那么服务器数据一旦丢失就除了 ...

  5. python解释NTFS runlist的代码(文章转自北亚数据恢复张宇工程师)

    代码如下: 执行效果如下:root@zhangyu-VirtualBox:~/NTFS-5# python3 read_runlist.py mft_source.img ***参数数量或格式错误! ...

  6. Android——旋转屏幕导致Activity重建解决方法

    Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何“设置”(Configuration)的改变都可能对Activity的界面造成影响,这时系 ...

  7. Android开发 旋转屏幕导致Activity重建解决方法(转)

     文章来源:http://www.jb51.net/article/31833.htm Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何“ ...

  8. Oracle 11g EM删除重建的方法

    虚拟机里的Oracle 11g好长时间没用了,突然打开之后发现EM无法访问了,EM可以重建,于是也不打算查找原因了,直接使大招 OS:Windows Server 2012 Oracle:11g R2 ...

  9. IBM x3850 RAID5数据恢复过程

    [raid数据恢复故障描述]    需要进行数据恢复的是北京一家公司的IBM X3850服务器,服务器挂载了5块73G SAS硬盘组成raid5磁盘阵列,4号盘为热备盘(Hot-Spare),由于未知 ...

随机推荐

  1. Luogu P3412 仓鼠找$sugar$ $II$

    Luogu P3412 仓鼠找\(sugar\) \(II\) 题目大意: 给定一棵\(n\)个点的树, 仓鼠每次移动都会等概率选择一个与当前点相邻的点,并移动到此点. 现在随机生成一个起点.一个终点 ...

  2. python数据类型——字符串类型

    字符串(string) 字符串,就是字符连成一串,是由字符组成的序列.字符串有编码问题,在之前我已经讲过.本节主要讲字符串的使用. 创建字符串,不用多说: a='123abcd' b='diamond ...

  3. LINUX下解决TIME_WAIT等网络问题

    修改配置文件 /etc/sysctl.conf net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_fin_timeout ...

  4. css学习の第一弹—格式创建

    构成结构:选择符(又称为选择qi器){声明(属性:值):}*****注意:大括号,冒号,每个声明后的分号. 注释:/*注释内容写在这里*/ 一.css样式 css样式写的地方的不同分类:内联式.嵌入式 ...

  5. Clion下jni配置

    Clion非常适合写C++程序 首先把C:\Program Files\Java\jdk1.7.0_79\include和C:\Program Files\Java\jdk1.7.0_79\inclu ...

  6. Windows Server 2019 预览版介绍

    在Windows server 2012.Windows server 2016还未完全普及的情况下,昨天Windows Server团队宣布Windows Server 2019将在2018年的下半 ...

  7. Python功能键

    swapcase ,大小写翻转 title,每个单词首字母大写 upper,全部大写 lower,全小写 center,居中(可填充符号) lstrip,去除首尾空格斜杠符号 find,寻找出现的位数 ...

  8. JavaScript变量提升的本质

    变量提升 先说三句总结性的话: let 的「创建」过程被提升了,但是初始化没有提升. var 的「创建」和「初始化」都被提升了. function 的「创建」「初始化」和「赋值」都被提升了. 所以,我 ...

  9. pyenv 安装

    sudo yum install openssl*     git clone https://github.com/yyuu/pyenv.git ~/.pyenv      echo 'export ...

  10. c++趣味之为变参模板的每个参数执行单独函数

    对于c++11以后出现的可变参数模板,一般我们都统一处理所有的参数.而当需要为每个参数执行不同的操作或调用不同的函数时,语法上是没有直接支持的. 可变参数的模板语法: template<type ...