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