网站首页 > 技术文章 正文
服务器数据恢复环境:
某品牌服务器中有一组由4块SAS磁盘做的RAID5磁盘阵列。该服务器操作系统为windows server,运行了一个单节点Oracle,数据存储为文件系统,无归档。该oracle数据库的数据量不大,oracle数据库内只有一个用户,使用默认的users表空间,users表空间下仅有一个数据文件。
服务器故障:
可能是服务器负荷过重,底层RAID5磁盘阵列出现故障。为了挽救数据,管理员做了重建RAID的操作,后但是在RAID初始化过程中又有一块磁盘出现故障,导致RAID初始化被迫中止。这时RAID磁盘阵列可访问,操作系统能正常启动,但是出现错误。oracle数据库所在D盘分区报错无法打开,管理员执行chkdsk后能正常打开,但oracle数据库无法启动。管理员在原盘上重装了oracle数据库,并导入了以前备份的dmp文件,但数据差得太多。需要恢复缺失的数据。
服务器数据恢复过程:
1、将故障服务器中所有磁盘标记后取出。经过硬件工程师检测没有发现有硬盘存在物理故障,都可以正常读取。以只读方式将所有硬盘进行扇区级全盘镜像,镜像完成后将所有磁盘按照标记还原到原服务器中,后续的数据分析和数据恢复操作都基于镜像文件进行,避免对原始磁盘镜像造成二次破坏。
2、基于镜像文件分析所有硬盘底层数据,重点分析RAID层。虽然重建RAID会给原始数据造成严重破坏,但经过分析发现重建的RAID的块大小、盘序都和原RAID一样。初始化中仅同步了前面的少量数据,RAID层损坏不严重,oracle数据库还没被破坏。
3、针对管理员对分区执行chkdsk、重装oracle数据库和导入dmp文件这一系列操作所造成影响的分析:Chkdsk不会破坏数据区,chkdsk只对文件系统元数据区进行修改。执行chkdsk后数据库文件仍无破坏,至多是文件的MFT或目录项被破坏。对数据影响最严重的是重装Oracle数据库和导入dmp文件的操作,这2个操作不仅破坏文件系统元数据区,还对数据区进行进行覆盖破坏。
4、对D盘的NTFS文件系统进行分析,发现原所有oracle数据文件的的MFT均被覆盖,NTFS日志也被轮回覆盖,从NTFS元数据区找不可利用信息。使用北亚企安自主开发的Oracle恢复程序对D盘分区进行扫描。经过扫描,发现Oracle实例为ANSORA,扫描出的一个完整的控制文件和一个完整的undotbs表空间数据文件。更为重要的system表空间和users表空间数据文件均有不同程度的损坏,其中system表空间的数据文件仅剩极一小部分,而users表空间的数据文件部分被覆盖。提取出找到的数据,然后再试图对严重损坏的数据库文件进行修复。
5、system表空间不可用,无法得到数据字典。在和用户方沟通后,用户方确认只需要恢复其中最重要的三张表即可。从imp回去的数据库中得到这三张表的结构,再从恢复出来的users表空间的数据文件中找到对应的segment,但其中有一张表怎么都对应不上。再次和用户方沟通才得知这一张表曾经有过更改字段的操作,然后构建新的表结构对应上users表空间数据文件中segment,然后通过dul工具提取这三张表的数据。经过用户方验证,确认数据无问题。本次数据恢复工作完成。
- 上一篇: 这份MySQL全面手册,受喜爱程度不输任何大厂笔记
- 下一篇: 一文搞懂flex(弹性盒布局)
猜你喜欢
- 2025-05-11 这份MySQL全面手册,受喜爱程度不输任何大厂笔记
- 2025-05-11 【Oracle】Package 存储过程编写以及其他实用技术
- 2025-05-11 网络工程师必知:高危端口大全
- 2025-05-11 如何备考OCM认证考试?
- 2025-05-11 真实案例记录Linux被植入rootkit导致服务器带宽跑满的解决过程
- 2025-05-11 JetBrains DataGrip Mac中文破解版V2025.1下载安装教程
- 2025-05-11 北大青鸟深圳嘉华与你一起探讨Oracle数据库安全问题(下)
- 2025-05-11 【推荐】一个开源免费、AI 驱动的智能数据管理系统,支持多数据库
- 2025-05-11 Empower网络版工作站管理员学习笔记之五
- 2025-05-11 Oracle 11g安装教程完整版
- 1506℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 482℃MySQL service启动脚本浅析(r12笔记第59天)
- 461℃启用MySQL查询缓存(mysql8.0查询缓存)
- 458℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 454℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 441℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 420℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 416℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)