数据文件, 重作日志和控制文件同时丢失或损坏:
条件和假设:Archivelog Mode; 有同步的所有所失文件的镜像(冷)拷贝;archive log(s) 可用
恢复步骤(必须采用不完全恢复的手法):
1. 如果数据库尚未关闭,则首先把它关闭:
$ svrmgrl
svrmgrl> connect internal
svrmgrl> shutdown abort
2. 将备份文件抄送回原始地点:
所有Database Files
所有Control Files
所有On-Line Redo Logs(Not archives)
init.ora file(选项)
3. 启动数据库然而并不打开:
svrmgrl>startup mount
4. 做不完全数据库恢复,应用所有从上次镜像(冷)备份始积累起来的archives:
svrmgrl> recover database until cancel using backup controlfile;
......
......
cancel
5. Reset the logfiles (对启动而言不可省略):
svrmgrl> alter database open resetlogs;
6. 关闭数据库并做一次全库冷备份。
数据文件和控制文件同时丢失或损坏:
条件和假设:Archivelog Mode; 有同步的datafile(s) 和control file(s) 的冷拷贝;archive log(s) 可用
恢复步骤:
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. 关闭数据库并做一次全库冷备份