免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 37069 | 回复: 0
打印 上一主题 下一主题

IBM服务器Oracle11gR2数据库数据恢复和修复案例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-07-12 15:19 |只看该作者 |倒序浏览
【单位】
上海某金融公司

.

【物理与逻辑存储】
客户使用一台IBM 3850服务器,4块300GB SAS磁盘做的RAID5。
服务器操作系统为 windows2003 x64,跑有一个单节点Oracle,oracle版本为11.2.0.2 ,数据存储为文件系统,无归档。此oracle数据量不大,oracle 内只有一个用户建的用户,使用oracle默认的users 表空间,users 表空间下仅有一个数据文件,大小不到 1GB。

.
【故障现象】
由于负荷过重,存储底层的RAID出现问题,用户为了挽救数据做了一系列重建RAID的操作,后因一磁盘出现故障而中止RAID初始化,但有少量数据被同步而破坏,此时RAID已可访问,系统虽出现错误,但能正常启动,但D盘也就是oracle数据库所在分区报错无法打开,客户chkdsk后能正常打开,但oracle无法启动,客户在原盘上重装了 oracle系统,并导入了以前备份的 dmp文件,但数据差得太多,被否定后,管理员已黔驴技穷。

.

【数据恢复过程】
第一步当然是分析,分析管理员每一步所做的操作带来破坏与否和破坏程度。

分析RAID层:
重建RAID会带来最为严重的破坏,但分析发现重建的RAID的块大小、盘序都和原来一样,而在初始化过程中仅同步了前部的少量数据,RAID层损坏不大,数据库还没被破坏。

分析后面管理员对分区chkdsk和重装oracle系统和导入 dmp文件所带来的破坏:
Chkdsk并不会破坏用户数据区,chkdsk只对文件系统元数据区修改。这时数据库文件仍无破坏,最多只是文件的MFT或目录项被破坏。

最严重的是重装 Oracle系统和导入dmp文件,这不只是对 文件系统元数据区进行破坏,还对用户数据区进行覆盖。

对D盘的NTFS文件系统进行分析,发现原所有oracle数据文件的的MFT均被覆盖,NTFS日志也早被轮回覆盖,从NTFS元数据区找不可利用信息。

只能使用内部的Oracle恢复程序对整个分区进行恢复。

经扫描,发现 Oracle实例为 ANSORA,扫描出的一个原始完整的控制文件和一个原始完整的undotbs表空间数据文件,重要的system和 users表空间数据文件都有不同程度的破坏,其中system表空间的数据文件仅剩中后部的10MB,原始应有约700MB,而 users 表空间的数据文件也有部分被覆盖,但仅4MB。

提取出找到了数据,下一步对严重损坏的数据库进行修复。

由于 system表空间不可用,无法得到数据字典,在和客户沟通后,客户确认了重要的三张表,这三张表也较大,从客户imp回去的数据库中得到了这三张表的结构,再从恢复 users表空间的数据文件中找到对应的segment,但有一张表死活无法对应上,再次询问客户,客户表示这一张表有过更改字段的操作,再构建新的表结构对应上users表空间数据文件中segment,然后通过 oracle官方的dul工具提取这三张表的数据,客户验证后,表示数据已无问题。

【结果】
耗时三天,用户指定数据99%以上恢复成功。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP