今天在搭建物理dg时执行restore database遇如下错误:"RMAN-06026:
some targets not found - aborting restore","RMAN-06023: no backup or copy of
datafile 2 found to
restore",从错误信息判断oracle无法在备份集中找到2号数据文件,也就是说该备份集中缺少某些数据文件。通过list命令发现该备份集中确实只包含部分数据文件,但是这是个0级备份啊,接着查看对应log日志也发现备份集中包含所有数据文件,对此我感到十分奇怪的,于是打算尝试通过dbms_backup_restore包来恢复试试看,发现该方法可以成功restore全库。
直接执行以下存储过程即可:
declare
devtype varchar2(256);
done
boolean;
begin
devtype:=sys.dbms_backup_restore.deviceallocate(type=>'',ident=>'t1');
sys.dbms_backup_restore.restoresetdatafile;
sys.dbms_backup_restore.restoredatafileto(dfnumber=>1,toname=>'/opt/oracle/oradata/ORCLDG2/system01.dbf');
sys.dbms_backup_restore.restoredatafileto(dfnumber=>2,toname=>'/opt/oracle/oradata/ORCLDG2/undotbs01.dbf');
.
.
.
sys.dbms_backup_restore.restorebackuppiece(done=>done,handle=>'/crmbak/rman/data/df_level_0_ORCL_20140406_13560',params=>null);
sys.dbms_backup_restore.devicedeallocate;
end;
/