Raid磁盘阵列数据恢复-数据库修复过程
admin
2023-03-12 16:02:36
0次

客户的一台DS5020 光纤存储出现故障导致数据丢失,该存储使用了16块硬盘组成raid磁盘阵列。10号盘和13号盘掉线,6号盘警告,需要进行数据恢复。

Raid磁盘阵列故障情况:

通过IBM storage manager将当前存储的完整日志状态备份下来,解析备份出来的存储日志获得了关于逻辑卷结构的部分信息。将客户服务器中所有磁盘按照固定顺序排序移出槽位进行测试发现该磁盘阵列中除6号盘smart状态为“警告”外其他硬盘均正常。

磁盘阵列数据恢复过程:

工程师首先在windows环境下把raid阵列中状态正常的硬盘标记为脱机,然后对所有磁盘记性全盘操作,在备份过程中发现6号硬盘速度异常缓慢,初步推测原因可能是因为该盘中不稳定扇区和坏道较多导致,于是更换专业针对坏道硬盘进行镜像的设备单独对6号硬盘进行镜像操作,同时将设备中遇到坏道响应、等待时间和跳过坏扇区数据进行调整。

经过镜像操作后,在windows平台下使用winhex镜像的磁盘已经全部镜像完成,查看winhex生成的日志,发现在IBM storage manager/frombyte.com和硬盘SMART状态中均没有报错的1号盘也存在坏道,10号和13号盘均存在大量不规律的坏道分布,根据坏道列表定位到目标镜像文件分析发现该磁盘阵列中文件系统部分关键数据处于坏道区,于是转为通过6号硬盘的同条带xor手动修复。我们借助数据恢复软件将备份出来的raid中的所有数据展开,对ext3文件系统的逆向以及日志文件进行整理分析从而分析出raid磁盘阵列的盘序、raid块大小,raid的校验走向和校验方式等必要信息。
通过分析出来的raid信息虚拟重组raid磁盘阵列并接卸ext3文件系统提取数据库文件。在对数据库文件的提取过程中出现报错,数据库报告imp-0008错误,数据恢复工程师重新对raid结构进行分析,再一次进行dmp文件和dbf原始库文件进行提取,所有文件正常无报错。

数据库数据恢复流程

1.拷贝数据库文件到原数据库服务器,路径为/home/oracle/tmp/syntong.作为备份。在根目录下创建了一个oradata文件夹,并把备份的整个syntong文件夹拷贝到oradata目录下。然后更改oradata文件夹及其所有文件的属组和权限。
2.备份原数据库环境,包括ORACLE_HOME下product文件夹下的相关文件。配置监听,使用原机中的splplus连接到数据库。尝试启动数据库到nomount状态。进行基本状态查询后,了解到环境和参数文件没有问题。 尝试启动数据库到mount状态,进行状态查询没有问题。启动数据库到open状态。出现报错:

ORA-01122: database file 1 failed verification check/frombyte.com
ORA-01110: data file 1: '/oradata/syntong/system01.dbf'
ORA-01207: file is more recent than control file - old control file

3.经过进一步的检测和分析,判断此故障为控制文件和数据文件信息不一致,这是一类因断电或突然关机等引起的常见故障。
4.对数据库文件进行逐个检测,检测到所有数据文件没有物理损毁。
5.在mount状态下,对控制文件进行备份,alter database backup controlfile to trace as ' /backup/controlfile';对备份的控制文件进行查看修改,取得其中的重建控制文件命令。把这些命令复制到一个新建脚本文件controlfile.sql中。
6.关闭数据库,删除/oradata/syntong/下的3个控制文件。 启动数据库到nomount状态,执行controlfile.sql 脚本。

SQL>startup nomount/frombyte.com
SQL>@controlfile.sql

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

SQL> alter database open;
alter database open/frombyte.com
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/free/oracle/oradata/orcl/system01.dbf'

然后执行恢复命令:

recover database using backup controlfile until cancel;
Recovery of Online Redo Log: Thread 1 Group 1 Seq 22 Reading mem 0
Mem# 0 errs 0: /free/oracle/oradata/orcl/redo01.log
…

做介质恢复,直到返回报告,恢复完成。
8.尝试open数据库。
SQL> alter database open resetlogs;
9.数据库启动成功。把原来temp表空间的数据文件加入到对应的temp表空间中。
10.对数据库进行各种常规检查,没有任何错误。
11.进行emp备份。全库备份完成,没有报错。将应用程序连接到数据库,进行应用层面的数据验证。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...