热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

raid5两块硬盘掉线,里面是数据库如何恢复数据

【raid数据恢复故障描述】华为S5300存储,存储中以供有16块FC硬盘,整个存储空间由450GBFC的硬盘组成一个RAID5磁盘阵列(包含一块热备盘)。该存储中

【raid数据恢复故障描述】

华为S5300存储,存储中以供有16块FC硬盘,整个存储空间由450GB FC的硬盘组成一个RAID5磁盘阵列(包含一块热备盘)。该存储中的RAID5阵列3号硬盘由于未知原因离线,热备盘上线并进行数据同步,同步完成到50%左右时8号盘由于未知原因离线,同步失败,raid阵列瘫痪,上层的lun失效,急需对该存储中的raid阵列进行数据恢复。

【raid数据恢复过程一:检测raid阵列所有磁盘】

首先对该raid中所有磁盘(包括正常磁盘和掉线磁盘)进行物理检测以确定离线盘有无物理故障,检测结果为3号盘存在物理故障,其他所有包括8号盘均无物理故障。

【raid数据恢复过程二:备份raid阵列所有磁盘】

物理检测结束后使用dd命令或数据恢复工具将所有磁盘都镜像成文件备份(这么做的目的是为了在镜像中进行数据恢复操作,保护用户源数据)。

【raid数据恢复过程三:分析该阵列raid结构】

工程师对该raid阵列中的所有磁盘进行分析,找出热备盘(热备盘理论上与其他数据盘有明显区别,可以直接区分)由于raid是条带化的,所有阵列中的数据均按照一定规律进行存储,所以工程师分析raid中的数据库页在每一个物理磁盘中的分布情况计算出raid组的磁盘顺序、数据走向、条带大小等基本信息。

【raid数据恢复过程四:找出raid阵列中被同步的坏盘】

根据分析得出的RAID信息,尝试通过RAID虚拟程序将原始的RAID组虚拟出来。但由于整个RAID组中掉线两块盘并且有一块硬盘数据被同步损坏。仔细分析每一块硬盘中的数据,发现有一块硬盘在同一个条带上的数据和其他硬盘明显不一样,因此初步判断此硬盘可能是被同步掉损坏的硬盘,通过RAID校验程序对这个条带做校验,因此可以明确被同步损坏盘了。

【raid数据恢复过程四:分析raid阵列lun信息】

分析lun信息首先虚拟出raid阵列状态,分析lun在阵列中的分配状态,分析lun分配的数据块,然后根据数据MAP并导出LUN的数据。

【文件系统数据恢复过程:解析EXT3文件系统】

由于是使用热备盘虚拟的RAID结构,EXT3文件系统无法正常挂载,所以只能提取oracle数据库文件,利用自主开发的文件系统解析程序对其进行文件系统的解析,导出oracle数据库文件,并把数据库文件移交给数据库工程师进行校验和验证

【数据库修复过程一:检测数据文件完整性】

使用Oracle数据库文件检测工具检测每个数据库文件是否完整,发现有错误。再使用Oracle数据库检测工具(检验更严格),发现有部分数据库文件和日志文件错误, system 和 sysaux表空间各存在100多坏块;3个控制文件都存在坏块许多坏块,控制文件全部损坏;eschoolspace表空间的3个文件的坏块更多,达到1000个;undotbs02丢失;数据库工程师对此类文件进行修复,
图一:
raid5两块硬盘掉线,里面是数据库如何恢复数据
图二:
raid5两块硬盘掉线,里面是数据库如何恢复数据

【数据库修复过程一:修复数据库】

我们创建了控制文件,创建undo表空间,启动数据库到mount。system数据文件坏块使得数据库不能open。各种隐含参数也不能绕过system的坏块;搭建数据库环境。使用dmp文件还原数据库。使用3月9号之后的导入,都报错,大约只能导入10G左右的数据。
图三:
raid5两块硬盘掉线,里面是数据库如何恢复数据

【数据验证:数据恢复成功】

由用户方配合,启动Oracle数据库,在本地虚拟机安装OA客户端。通过OA客户端对数据记录进行验证,并且用户安排不同部门人员进行远程验证。验证通过,数据恢复成功


推荐阅读
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 本文深入探讨了 Java 编程语言的基础,特别是其跨平台特性和 JVM 的工作原理。通过介绍 Java 的发展历史和生态系统,帮助初学者理解如何编写并运行第一个 Java 程序。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • andr ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
author-avatar
手机用户2502851955
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有