RMAN恢复

来源:互联网 发布:打吊针庞麦郎 知乎 编辑:程序博客网 时间:2024/04/29 19:53

一、恢复数据库:
 恢复数据库:
 run {
  startup force mount;
  restore database;
  recover database;
  sql 'alter database open';
 }
 
 恢复数据库(磁盘损坏)
 run {
  startup force mount;
  set newname for datafile 1 to '';
  set newname for datafile 2 to '';
  set newname for datafile 3 to '';
  ...
  restore database;
  switch datafile all;
  recover database;
  sql 'alter database open';
 }

二、恢复数据文件
 恢复system表空间数据文件
 run {
  startup force mount;
  restore datafile 1;
  recover datafile 1;
  sql 'alter database open';
 }
 
 恢复system表空间数据文件(磁盘损坏)
 run {
  startup force mount;
  set newname for datafile 1 to '';
  restore datafile 1;
  switch datafile 1;
  recover datafile 1;
  sql 'alter database open';
 }  
 
 数据文件丢失(非system表空间)
 run {
  startup force mount;
  sql 'alter database datafile 4 offile';
  sql 'alter database open';
  restore datafile 4;
  recover datafile 4;
  sql 'alter database datafile 4 online';
 }
 
 数据文件丢失且磁盘损坏(非system表空间)
 run {
  startup force mount;
  sql 'alter database datafile 4 offline';
  sql 'alter database open';
  set newname for datafile 4 to '';
  restore datafile 4;
  switch datafile 4;
  recover datafile 4;
  sql 'alter database datafile 4 online';
 }

 数据文件没有备份,但archivelog全部完好
 run {
  startup force mount;
  sql 'alter database datafile 7 offline';
  sql 'alter database open';
  restore datafile 7;
  recover datafile 7;
  sql 'alter database datafile 7 online';
 }
 
 数据文件损坏
 run {
  startup force mount;
  sql 'alter database datafile 7 offline';
  sql 'alter database open';
  set newname for datafile 7 to '';
  restore datafile 7;
  switch datafile 7;
  recover datafile 7;
  sql 'alter database datafile 7 online';
 }
 
三、恢复表空间
 表空间数据文件被删除
  run {
   sql 'alter tablespace users offline for recover';
   restore tablespace users;
   recover tablespace users;
   sql 'alter tablespace users online';
  }
  
 表空间数据文件所在磁盘出现故障
  run {
   sql 'alter tablesapce users offline for recover';
   set newname for datafile 4 to '';
   restore tablespace users;
   switch datafile all;
   recover tablespace users;
   sql 'alter tablespace users online';
  }
  
四、数据块介质恢复
 blockrecover device type disk datafile 5 block 21,48,..;
 
五、不完全恢复
  --基于时间的恢复
 run {
  startup force mount;
  set until time='2010-10-30 17:00:28';
  restore database;
  recover database;
  sql 'alter database open resetlogs';
 }
 
 --基于日志序列号
 run {
  startup force mount;
  set until sequence=6;
  restore database;
  recover database;
  sql 'alter database open resetlogs';
 }
 
 --基于scn
 run {
  startup force mount;
  set until scn=51141378;
  restore database;
  recover database;
  sql 'alter database open resetlogs';
 }
 
 不完全恢复后需要及时做备份
 run {
  delete noprompt backup;
  delete noprompt copy;
  backup database format='';
  sql 'alter system archive log current';
 }
 
 startup force mount;
 set dbid=3267878421;
 restore controlfile from autobackup maxseq 6;
 基于备份控制文件的不完全恢复
 run {  
  sql 'alter database mount';
  set until time='2010-10-30 17:00:28';
  restore database;
  recover database;
  sql 'alter database open resetlogs';
 }
 
 

 

原创粉丝点击