【Vegas原创】用dbms_backup_restore解决RMAN-06026 06023错误

本文提供了一种解决从备份集还原controlfile时遇到RMAN错误的方法,包括使用dbms_backup_restore包逐步恢复数据文件及控制文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象:从备份集还原出来的controlfile,用此进行rman还原时,报以下错误:

 

 

RMAN - 06026 some  targets  not  found  -  aborting  restore
RMAN
- 06023 : no  backup   or  copy  of  datafile  3  found  to   restore
RMAN
- 06023 : no  backup   or  copy  of  datafile  2  found  to   restore
RMAN
- 06023 : no  backup   or  copy  of  datafile  1  found  to   restore

 

 

 

解决方法:

用dbms_backup_restore package进行恢复。

 

1,Startup nomount;

2,执行恢复:

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
=> 01 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\SYSTEM01.DBF ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 02 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\UNDOTBS01.DBF ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 03 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\SYSAUX01.DBF ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 04 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\USERS01.DBF ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 05 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\EXAMPLE01.DBF ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 06 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\DRSYS ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 07 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\INDX ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 08 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\RBS ' );
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber
=> 09 ,toname => ' E:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\TOOLS ' );
 sys.dbms_backup_restore.restoreBackupPiece(done
=> done,handle => ' D:\HISDBRman\DF343_1_714024003 ' , params => null );
 sys.dbms_backup_restore.deviceDeallocate;
END ;
/

 

ps:如果有两到三个备份集,需要分开执行以上的代码,替换

sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:\HISDBRman\DF343_1_714024003', params=>null);

到另一个备份集。

 

3,看看control文件在不

如果rman备份集里有,就直接:

RMAN >   restore  controlfile  from   ' F:\tmp\DF344_1_714024149 ' ;

 

如果没有,则:

alter   database   backup  controlfile  to  trace;

 

找到trace文件,重建你的control文件

 

4,执行恢复:

SQL >  recover  database  using  backup  controlfile until cancel;

 

 

5,如果4步骤中出现log问题不让恢复的话,参看:

http://www.cnblogs.com/Vegaslee/archive/2010/03/26/1696698.html 联机日志丢失,recover database until cancel不可以的解决方法

 

6, open resetlogs,好了。

 

参考文档:http://www.eygle.com/archives/2005/06/oorman06026iioe.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值