物理架构:
服务器为曙光4U服务器,共两台。存储为曙光某型存储,其中一个盘柜上有10块光纤磁盘做的RAID5,分成三组LUN,供两台服务器使用。
逻辑架构:
服务器OS为SUSE Linux Enterprise Server 10 x64,安装Oracle11.2.0.2 数据库,两台服务器做的双节点RAC,Oracle存储方式为ASM,三个LUN组成的外部冗余方式的磁盘组。此RAC上跑有3个数据库。
存储损坏后,运维公司对存储做了一系列操作,存储控制在日志中显示被初始化,强制online磁盘已不可能,只得开始一层层抽丝剥茧。
整体过程:
1. 镜像磁盘。磁盘坏道不多,几百个坏道。
2. 重组RAID。通过 oracle 数据文件和ASM底层结构很快分析出RAID结构。
3. 再次将重组RAID后的三个LUN镜像。
4. 通过内部软件提取ASM中的数据。
5. 修改oracle环境,修复和强制拉起数据库。
6. 使用oracle的exp或 expdp 方式导出数据。
7. 重建RAC环境,将导出的数据导入。
此应用系统较庞大,函数、存储过程和触发巨多,这对“修改oracle环境,修复和强制拉起数据库” 要求较高,而且损坏的时候系统正繁忙,数据库损坏较为严重,其中修复过程困难重重,其中一个库连控制文件和 system 表空间也有损坏。
下面是恢复过程的部分截图:
修复完成后拉起库做导出: