1.丢失控制文件
启动数据库至nomount状态:restore controlfile from autobackup/restore controlfile from '+data/backup/contrlbak/...'
->alter database mount->open;
2.误删数据文件
启动至mount状态->alter database datafile 7 offline->alter database open->restore datafile 7->recover datafile 7->alter database datafile online;
3.丢失参数文件
此时参数文件丢失,catalog 中根据DBID识别注册数据库,此时无法识别.
export ORACLE_SID=orcl1->rman target/->restore spfile from '+data/autobackup/2015_11_27/s_896863604.1824.896863605'
->shutdown immediate;
然后可以连接catalog再进行其它恢复,最后必须执行restore database和recover database,最后alter database open resetlogs才能open数据库。
4.recover database定义
recover database,是做的完全恢复,也就是说日志文件归档的和在线日志必须完好无损,还有数据文件,控制文件都准备齐全才可!如果有在线日志
损坏,或者归档日志缺失的话,就无法执行完全恢复,需要不完全恢复了!recover database using backup controlfile......or until cancel;然后
resetlogs打开,再不行就是使用隐含参数打开!
5.alter database open resetlogs
open resetlogs应该是将日志重新归位,使数据库的scn,检查点等保持一致;相当于把所有的联机日志重新“格式化”。这是会丢失数据的。
resetlog 选项在不完全恢复时用,归档日志序号重新开始排序
noresetlog 在完全恢复的时候用
6.基于时间点的恢复
SQL>set time on;
主要是需要恢复的时间点的选取;
启动至mount状态
RMAN->run{
SET UNTIL TIME "to_date('2014-01-17 09:54:33','yyyy-mm-dd hh24:mi:ss')";
RESTORE DATABASE;
RECOVER DATABASE;
}