[ 永远的UNIX::UNIX技术资料的宝库 ]

首页 > 数 据 库 > Oracle > 正文
 

[Oracle]数据库系统紧急故障处理方法 (5)

来源:赛迪网社区 (2006-06-26 12:14:15)

恢复步骤:

  1. 将冷拷贝的datafiles(s) 和control file(s) 抄送回原始地点:

  $ cp /backup/good_one.dbf /orig_loc/bad_one.dbf

  $ cp /backup/control1.ctl /disk1/control1.ctl

  2. 以mount 选项启动数据库:

  $ svrmgrl

  svrmgrl> connect internal

  svrmgrl> startup mount
  
  3. 以旧的control file 来恢复数据库:

  svrmgrl> recover database until cancel using backup controlfile;

  *** 介质恢复完成

  (须在应用完最后一个archive log 后cancel )

  4. Reset the logfiles (对启动而言不可省略):

  svrmgrl> alter database open resetlogs;

  重作日志和控制文件同时丢失或损坏时:

  条件和假设:Control Files 全部丢失或损坏;Archivelog Mode; 有Control Files 的镜像(冷)拷贝。
  
  恢复步骤:

  1. 如果数据库尚未关闭,则首先把它关闭:

  $ svrmgrl

  svrmgrl> connect internal

  svrmgrl> shutdown abort

  svrmgrl>exit

  2. 以Control File 的镜像(冷)拷贝覆盖损坏了的Control File:

  $ cp /backup/control1.ctl /disk1/control1.ctl

  3. 启动数据库然而并不打开:

  $ svrmgrl

  svrmgrl> connect internal

  svrmgrl> startup mount

  4. Drop 坏掉的redo log (排除硬件故障):

  svrmgrl> alter database drop logfile group 2;

  5. 重新创建redo log:

  svrmgrl> alter database add logfile group 2 '/orig_loc/log2.dbf' size 10M;
  
  6. 以旧的control file 来恢复数据库:
  
  svrmgrl> recover database until cancel using backup controlfile;

  (必须马上cancel )

  7. Reset the logfiles (对启动而言不可省略):

  svrmgrl> alter database open resetlogs;

  8. 关闭数据库并做一次全库冷备份

  只发生归档重作日志丢失或损坏时:

  根据不同环境和情况,选择下述手段之一:

  a. 马上backup 全部datafiles (如果系统采用一般热备份或RMAN 热备份)

  b. 马上正常关闭数据库并进行冷备份(如果系统采用冷备份)

  c. 冒险前进!不做备份而让数据库接着跑,直等到下一个备份周期再做备份。这是在赌数据库在下一个备份周期到来之前不会有需要恢复的错误发生。

  注意:冒险前进的选择:如果发生错误而需要数据库恢复,则最多只能恢复到出问题archive log 之前的操作现场。从另一个角度讲,archive log(s) 出现问题时,数据库若不需要恢复则其本身并没有任何问题。
(http://www.fanqiang.com)



 
 相关文章

 

★  感谢所有的作者为我们学习技术知识提供了一条捷径  ★
www.fanqiang.com