返回顶部
首页 > 资讯 > 数据库 >RAID重组和数据库数据的修复与验证
  • 592
分享到

RAID重组和数据库数据的修复与验证

2024-04-02 19:04:59 592人浏览 泡泡鱼
摘要

背景介绍:IBM DS5020 光纤存储。存储上一共16块FC硬盘,单盘容量600G。存储前面板10号和13号硬盘亮***故障灯,存储映射到redhat上的卷挂载不上,业务崩溃。开始工作: 通过IBM st

背景介绍:

IBM DS5020 光纤存储。存储上一共16块FC硬盘,单盘容量600G。存储前面板10号和13号硬盘亮***故障灯,存储映射到redhat上的卷挂载不上,业务崩溃。

开始工作:

 通过IBM storage manager连接到存储查看当前存储状态,存储报告逻辑卷状态失败,再查看物理磁盘状态,发现6号盘报告“警告”,10号和13号盘报告“失败”,通过IBM storage manager将当前存储的完整日志状态备份下来,解析备份出来的存储日志获得了关于逻辑卷结构的部分信息。

  将16块FC盘粘贴标签,按照原始槽位号登记后从存储中移除,使用北亚数据恢复的FC盘镜像设备“DELL R510+SUN3510”对16块FC盘进行粗略测试,结果发现16块盘均能正常识别,分别检测16块盘的SMART状态,结果6号盘的SMART状态为“警告”状态和在IBM storage manager中报告一致。

  在windows环境下首先将设备识别出来的FC盘在磁盘管理器中标记为脱机状态,从而为原始磁盘提供了一个写保护功能,然后使用winhex软件对原始磁盘进行扇区级别镜像操作,将原始磁盘中的所有物理扇区镜像到windows系统下的逻辑磁盘并以文件形式保存。在镜像过程中发现6号磁盘的镜像速度很慢,结合先前对硬盘SMART状态检测时发现的问题综合判断,6号盘应该存在大量损坏以及不稳定扇区,导致在windows下的一般应用软件无法对其进行操作。

  使用专业坏道硬盘镜像设备对6号硬盘进行坏道镜像操作,在镜像过程中同时观察镜像的速度和稳定性,发现6号盘的坏道并不多,但是存在大量的读取响应时间长等不稳定扇区,于是调整6号盘的拷贝策略,将遇到坏道跳过扇区数和响应等待时间等参数均作一些修改。继续对6号盘进行镜像操作。同时观察剩余盘在windows环境下使用winhex镜像的情况。

  经过镜像操作后,在windows平台下使用winhex镜像的磁盘已经全部镜像完成,查看winhex生成的日志,发现在IBM storage manager和硬盘SMART状态中均没有报错的1号盘也存在坏道,10号和13号盘均存在大量不规律的坏道分布,根据坏道列表使用winhex定位到目标镜像文件分析发现,ext3文件系统的一些关键源数据信息有的已经被坏道所破坏,只能等待6号盘镜像完毕后,通过同一条带进行xor以及根据文件系统上下文关系的方式手动修复被损坏的文件系统。

  坏道镜像设备报告6号盘镜像完成,但是先前为了最大限度做出有效扇区以及为了保护磁头设置的拷贝策略会自动跳过一些不稳定扇区,所以现在的镜像是不完整的,于是调整拷贝策略,继续镜像被跳过的扇区,6号盘所有扇区全部镜像完毕。

  得到了所有硬盘的物理扇区镜像,在windows平台下使用winhex将所有镜像文件全部展开,根据我们对ext3文件系统的逆向以及日志文件的分析,得到了16块FC盘在存储中的盘序,RaiD的块大小,RAID的校验走向和方式等信息,于是尝试通过软件的方式虚拟重组RAID,RAID搭建完成后进一步解析ext3文件系统,通过和用户沟通提取出了一些oracle的dmp文件,用户尝试进行恢复。

  在dmp恢复的过程中,oracle报告为imp-0008错误,联系北亚的oracle工程师,通过仔细分析导入dmp文件的日志文件,发现恢复的dmp文件存在问题而导致dmp导入数据失败。立刻重新分析raid结构,以及进一步确定ext3文件系统被破坏的程度,又经过数小时的工作,重新恢复dmp文件和dbf原始库文件,将恢复出来的dmp文件移交给用户进行数据导入测试,结果测试顺利没有发现问题,说明这次的数据恢复是成功的,接着对恢复出来的dbf原始库文件进行校验检测,所有文件均能通过测试。

  北亚的数据库工程师到达现场,和用户沟通后决定使用恢复出来的dbf原始库文件进行操作,以确保能把数据恢复到最佳状态。

  数据库恢复流程

  1. 拷贝数据库文件到原数据库服务器,路径为/home/oracle/tmp/syntong.

  作为备份。在根目录下创建了一个oradata文件夹,并把备份的整个syntong文件夹拷贝到oradata目录下。然后更改oradata文件夹及其所有文件的属组和权限。

  2. 备份原数据库环境,包括ORACLE_HOME下product文件夹下的相关文件。配置监听,使用原机中的splplus连接到数据库。尝试启动数据库到nomount状态。进行基本状态查询后,了解到环境和参数文件没有问题。尝试启动数据库到mount状态,进行状态查询没有问题。启动数据库到open状态。出现报错:

  ORA-01122: databasefile 1 failed verification check

  ORA-01110: data file1: '/oradata/syntong/system01.dbf'

  ORA-01207: file ismore recent than control file - old control file

  3. 经过进一步的检测和分析,判断此故障为控制文件和数据文件信息不一致,这是一类因断电或突然关机等引起的常见故障。

  4. 对数据库文件进行逐个检测,检测到所有数据文件没有物理损毁。

  5.  在mount状态下,对控制文件进行备份,alter database backupcontrolfile to trace as ' /backup/controlfile';对备份的控制文件进行查看修改,取得其中的重建控制文件命令。把这些命令复制到一个新建脚本文件controlfile.sql中。

  6.  关闭数据库,删除/oradata/syntong/下的3个控制文件。 启动数据库到nomount状态,执行controlfile.sql 脚本。

  SQL>startupnomount

  SQL>@controlfile.sql

  7. 重建控制文件完成后,直接启动数据库,报错,需要进一步处理。

  SQL> alterdatabase open;

  alter database open

  *

  ERROR at line 1:

  ORA-01113: file 1needs media recovery

  ORA-01110: data file1: '/free/oracle/oradata/orcl/system01.dbf'

  然后执行恢复命令

  recover databaseusing backup controlfile until cancel;

  Recovery of OnlineRedo Log: Thread 1 Group 1 Seq 22 Reading mem 0

  Mem# 0 errs 0:/free/oracle/oradata/orcl/redo01.log

  …

  做介质恢复,直到返回报告,恢复完成。

  8. 尝试open数据库。

  SQL> alterdatabase open resetlogs;

  9.  数据库启动成功。把原来temp表空间的数据文件加入到对应的temp表空间中。

  10. 对数据库进行各种常规检查,没有任何错误。

  11. 进行emp备份。全库备份完成,没有报错。将应用程序连接到数据库,进行应用层面的数据验证。

  数据验证结束,数据库修复完成,数据恢复成功。


您可能感兴趣的文档:

--结束END--

本文标题: RAID重组和数据库数据的修复与验证

本文链接: https://lsjlt.com/news/43971.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • RAID重组和数据库数据的修复与验证
    背景介绍:IBM DS5020 光纤存储。存储上一共16块FC硬盘,单盘容量600G。存储前面板10号和13号硬盘亮***故障灯,存储映射到redhat上的卷挂载不上,业务崩溃。开始工作: 通过IBM st...
    99+
    2024-04-02
  • Oracle数据库ODBC连接与数据备份的验证与恢复测试
    要验证Oracle数据库的ODBC连接,可以通过以下步骤进行: 确保ODBC数据源已正确配置:打开ODBC数据源管理器,在“系统DSN”或“用户DSN”选项卡中确认是否已创建了正确的数据源,包括正确的数据库名称、用户名和密码等信息。 ...
    99+
    2024-07-16
    oracle
  • 大数据组件Sqoop-安装与验证
    🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 个人主页:beixi@ 本文章收录于专栏(点击传送):【大数据学习】 &#x...
    99+
    2023-09-05
    大数据 sqoop hadoop 运维 服务器
  • 如何优化数据库的数据验证
    要优化数据库的数据验证,可以采取以下措施: 使用数据类型限制:在数据库设计阶段,合理地选择数据类型,限制字段的取值范围,避免输入非法数据。 使用约束:在数据库中设置约束,如唯一约束、主键约束、外键约束等,确保数据的一致性和完整性。 ...
    99+
    2024-07-03
    数据库
  • Oracle数据库ODBC连接与数据备份验证流程
    确保Oracle数据库已安装ODBC驱动程序。如果没有安装,请下载并安装正确版本的ODBC驱动程序。 在计算机上配置ODBC数据源。打开“控制面板” -> “系统和安全” -> “管理工具” -> “ODBC数据源管理...
    99+
    2024-07-16
    oracle
  • php 去掉数组中重复数据库
    PHP是一门流行的服务器端编程语言,广泛用于开发Web应用程序。在PHP开发中,操作数据库是非常常见的需求之一。当我们从数据库中获取数据时,经常会出现数据重复的情况。如果我们需要对这些重复数据进行去重操作,可以使用PHP的数组去重的方法来实...
    99+
    2023-05-24
  • PHP8.0中的数据验证库:Respect
    随着PHP语言的普及和应用范围的扩大,数据验证也变得越来越重要。数据验证是一个Web应用中的重要环节,负责验证和过滤用户提交的数据并确保其完整性和有效性。如果没有一个强大的数据验证系统来保证数据的安全性和可靠性,那么一个简单的输入错误就可能...
    99+
    2023-05-14
    PHP 数据验证库 Respect
  • php 合并数组去掉重复的数据库
    随着互联网的高速发展,PHP已经成为了网页开发领域最为流行的语言之一。PHP语言在处理数组时有着相当出色的表现,它提供了许多方法可以轻松实现数组的合并、去重等操作,在数据库中也有非常广泛的应用。本文将介绍如何使用PHP合并数组并将重复内容去...
    99+
    2023-05-19
  • php数组内的值是否重复数据库
    随着Web应用程序的不断发展和扩展,PHP(Hypertext Preprocessor)作为最受欢迎的Web编程语言之一,正在成为web开发人员的首选之一。PHP中的数组是一个非常强大且常见的工具,可以用于数据的开发和管理。在某些情况下,...
    99+
    2023-05-23
  • 数据库删除重复数据
    当数据库数据量大的时候,删除重复元素是很讨厌的,有时候怎么也写不对,闲下来整理一下删除 重复数据的sql,数据表是之前看mysql教学视频的素材,但是找不到哪...
    99+
    2024-04-02
  • 数据库数据恢复实验过程
    进入数据库操作,难免会出现一些误操作。这时就需要我们对数据进行恢复。一下介绍一下如何将表中的内容删除后进行恢复的过程。首先我们模拟一下实验环境:将数据库安装好之后进入到/etc/my.cnf中查看是否启用了...
    99+
    2024-04-02
  • mysql数据库怎么删除重复数据库
    mysql 中删除重复数据库的过程如下:使用查询识别重复数据库。使用 drop database 语句删除重复数据库。使用 show databases 验证重复数据库是否已删...
    99+
    2024-08-05
    mysql
  • 数据库与MySQL实验一
    目录 实验内容 (一)创建数据库的操作 (二)表数据的操作 (三)数据库的备份与恢复 实验思考 实验内容 (一)创建数据库的操作 1. 使用SQL语句创建数据库Stu_Course。 T-SQL语句为: CREATE DATABASE...
    99+
    2023-10-26
    数据库 mysql sql
  • mysql数据库去除重复数据的方法
    这篇文章主要介绍了mysql数据库去除重复数据的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql数据库去除重复数据的方法:1、查询需...
    99+
    2024-04-02
  • 删除数据库中重复数据的方法
    这篇文章主要介绍“删除数据库中重复数据的方法”,在日常操作中,相信很多人在删除数据库中重复数据的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”删除数据库中重复数据的方法”...
    99+
    2024-04-02
  • 查询数据库中的重复数据记录
    ========第一篇========= 在一张表中某个字段下面有重复记录,有很多方法,但是有一个方法,是比较高效的,如下语句: select data_guid from adam_entity_datas a wher ...
    99+
    2023-09-10
    数据库 sql mysql
  • Mysql数据库修复
    当数据库异常down掉或系统异常重启后,开启业务前需启动数据库,查看err日志,查看数据库有无损坏,修复后,在开启业务。这里的检查和修复,只针对MyISAM,相关操作如下:检查数据库中表有没有损坏:mysq...
    99+
    2024-04-02
  • 数据库实验1 数据库定义与操作语言实验
    前言:实验本身并不是很难,照着实验指导书抄就行,不过注意有些sql语句和mysql语句是不相同的,需要进行一定的修改 数据集链接 实验1 数据库定义与操作语言实验 实验1.1 数据库定义实验 1.实验...
    99+
    2023-10-20
    数据库 mysql sql
  • JSONLINT:python的json数据验证库实例解析
    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。 JSON 函数 使用 JSON 函数需要导入 json 库:import json。 ...
    99+
    2022-06-04
    实例 数据 JSONLINT
  • 数据库中ORACLE的启动验证分析
    本篇内容介绍了“数据库中ORACLE的启动验证分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!orade...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作