2009年5月7日星期四

solaris ufs文件系统故障后恢复oracle数据库过程记录

作者:张宇,北亚服务器数据恢复中心,转载请联系作者,如果实在不想联系作者,至少请保留版权,谢谢。

[数据恢复故障描述]
  1台sun sparc solaris系统,安装有oracle数据库,未知原因(有人为操作可能,但限于多方原因,无法得知),装载数据库的文件系统无法挂载,需要恢复oracle数据库。
[数据恢复过程]
  首先对故障硬盘进行全面的完整备份,使用dd命令备份成nfs上的一个镜像文件。
  对镜像文件进行完整分析,发现超级块存在故障。
  抛开超级块,进行文件系统分析:
  1、查找及分析根目录记录,找到。
  2、根据根目录查找第一个节点区,找到,并以此分析块大小。
  3、根据根据节点区特点,确定节点区大小。
  4、查找第二个节点区,随之确定整个文件系统结构。
  5、发现/lost+found文件夹里有大量以数字命名的目录及文件,通常就是由于fsck造成的。
  6、按用户提供的目录信息从底层进入分析,找到数据库所在目录,再返回分析需恢复文件的节点区,发现节点区有错误,部分节点的索引位置清0。
  通过文件系统的分析,无法全部重组数据库文件。
  按sparc solaris上的oracle数据文件组织结构,对全盘进行分析处理。
  根据重组好的数据库结构加上部分文件系统信息,成功导出所有数据库。
  100%数据库恢复成功。
[后记]
  1、此例的故障原因无从考评,但明显的,fsck是不应该执行的。当UFS文件系统出现故障后,如果条件允许,尽可能先对故障盘做备份操作,如果无法做备份,至少应该先以只读的方式测试fsck修复,或选择向导式修复,同时在发现导演时尽快停下操作。
  2、UFS文件系统是个不太健壮的文件系统,推荐条件允许的话,使用Vxfs(ZFS本人没测试,不敢妄言,按理应该不错)
  3、做好备份策略,也不要把备份放在同一存储体上。

没有评论:

发表评论