你的位置:首页 > 数据库

[数据库]oracle rman catalog备份和恢复


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;

  }