今天在搭建物理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;
/
直接执行以下存储过程即可:
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;
/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/20801486/viewspace-1142656/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/20801486/viewspace-1142656/