Oracle 8.1.6的一次恢复!

作者:Ken

  2006年8月15日下午接到客户电话,说一个数据文件在resize到4GB之后数据文件不可用!执行recover datafile失败报ora-283的错!需要我们立刻到场帮助恢复!其实这个客户在大半年前根我们谈过Oracle维护/升级的案子,拖了近半后又不做了!

  到了现场察看客户环境为:oracle8.1.6.0.0 , windows2000
  察看alert log纪录如下:

Media Recovery Datafile: 'F:\oradata\WIPMLCC\MLCC02.DBF'
Media Recovery Start
Media Recovery Log
Recovery of Online Redo Log: Thread 1 Group 2 Seq 3128 Reading mem 0
  Mem# 0 errs 0: F:\ORADATA\WIPMLCC\REDO02.LOG
Tue Aug 15 17:04:47 2006
KCF: write/open error block=0x38683 online=0
     file=11 F:\ORADATA\WIPMLCC\MLCC02.DBF
     error=27069 txt: 'OSD-04026: ???????. (OS 231043)'
KCF: write/open error block=0x37f3a online=0
     file=11 F:\ORADATA\WIPMLCC\MLCC02.DBF
     error=27069 txt: 'OSD-04026: ???????. (OS 229178)'
KCF: write/open error block=0x387e6 online=0
     file=11 F:\ORADATA\WIPMLCC\MLCC02.DBF
     error=27069 txt: 'OSD-04026: ???????. (OS 231398)'
KCF: write/open error block=0x385db online=0
.........................................................
.........................................................

KCF: write/open error block=0x3824d online=0
     file=11 F:\ORADATA\WIPMLCC\MLCC02.DBF
     error=27069 txt: 'OSD-04026: ???????. (OS 229965)'
Tue Aug 15 17:04:53 2006
Media Recovery failed with error 1579
ORA-283 signalled during: ALTER DATABASE RECOVER   
datafile 'F:\oradata\...

  根据metalink的解释为Oracle816的bug! 唯一的方法就是将数据库恢复到resize前的那一时刻!但是客户只有2005年10月的一次冷备份!archivelog有近几个月的备份!没有热全备份,archivelog用不上!最后跟客户说只能丢失这个数据文件了!

  8/16日大清早客户又来电话,说台湾那面问过Oracle的人如果可以将数据库升级到8.1.6.3.8也许可以recover datafile !

  又到客户现场,开始到metalink download Patch !Metalink下载patch的速度很稳定基本保持在14-15K/s !65MB的Patch DownLoad一个多小时 !  

  建立测试恢复环境,打patch ,先打8.1.6.3.0 patch通过universal install顺利安装完成,open db执行catalog.sql catproc.sql两个脚本!然后打8.1.6.3.8的Patch 根据Readme文件copy一些文件到指定目录下面即可!

  重新打开db ,recover datafile 后成功!