服务器数据恢复—光纤共享存储互斥设置不当导致数据丢失的数据恢复案例
服务器数据恢复环境&故障:
两台SOLARIS系统(SPARC平台)的服务器通过光纤交换机共享同一个存储作为CLUSTER使用。正常情况下只有A服务器工作。如果A服务器发生故障宕机,可将A服务器关机,开启B服务器接管。但由于配置不当导致共享存储互斥出现问题。
管理员进行运维检查时发现B服务器连接了一块未知磁盘。由于B服务器并未启用,处于闲置状态,所以管理员也将这块磁盘当作闲置的,于是在B服务器上将磁盘的某个分区做了newfs。没想到这块磁盘就是那个共享存储,执行操作没有多长时间A服务器就开始报警并宕机。
发生问题后,管理员又做了如下操作:1、重启A服务器但发现所有的文件系统均无法挂载。2、执行fsck。多数分区数据修复成功,只有在B服务器做过newfs的文件系统修复结果不理想,根目录下只有一个lost+found文件夹,里面有大量数字标号的文件。
故障文件系统存放了两组ORACLE实例,文件系统为UFS,约有数百个数据文件需要恢复。
故障分析&数据恢复方案:
光纤环境下的共享冲突案例很多。本案例中,A服务器与B服务器同时对UFS这个单机文件系统进行访问,两台服务器都以独享方式对共享存储进行管理。A服务器正常管理的文件系统其实底层上已经被B服务器做了文件系统初始化,A服务器从缓冲区写入文件系统的数据也会破坏B服务器初始化的结果。
B服务器上做newfs实际上直接会作用于原先的文件系统之上,但本案例与单纯的newfs有些不同,在A服务器宕机之前,会有一小部分数据(包括元数据)回写回文件系统。newfs的结构如果与之前的相同,数据区是不会被破坏的。如果有一小部分元数据存在,部分数据还是可以恢复的。
UFS文件系统以块组切割,每块组分配若干固定的inode区。文件系统newfs时,如果结构与之前的相同,文件系统最重要的inode区会全部初始化,之前的无法保留。inode管理着所有文件的重要属性,所以单纯从文件系统角度考虑,数据恢复的难度很大。幸亏oracle数据文件的强结构性和UFS文件系统的规律性,可以通过对oracle数据文件的结构重组,将数据文件、控制文件、日志等恢复出来。oracle数据文件本身会有表名称描述,也可以反向推断原来的磁盘文件名。
服务器数据恢复过程:
1、将所有文件系统做只读镜像。
2、基于镜像文件分析&重组oracle数据结构。
3、针对部分结构乱,无法重组的文件,北亚企安数据恢复工程师参考ufs文件系统结构特征进行辅助分析。
4、利用恢复出来的数据文件、控制文件在oracle平台恢复数据库。
5、恢复完所有数据库文件后,交由用户方检测。经过仔细检测,确认恢复出来的数据完整。
Tips:
fsck是很致命的操作,在fsck之前最好做好备份。光纤环境中存储互斥不当是非常多的数据灾难的原因,应谨慎部署与实施。