restore database报RMAN-06026和RMAN-06023错误

    今天在搭建物理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;
    /
请使用浏览器的分享功能分享到微信等