RMAN-06026 错误分析与解决

RMAN-06026 错误分析与解决 

 

背景:
     之前做了基于SCN的不完全恢复,在尝试恢复的过程中使用了_allow_resetlogs_corruption参数,resetlogs之后,Oracle使用的当前控制文件不允许
从这个历史的备份集中进行恢复,从而导致了RMAN-06026这个错误,错误现象如下:


错误现象:
RMAN> restore database;

Starting restore at 26-JUL-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=47 devtype=DISK

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/26/2012 12:41:17
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 7 found to restore
RMAN-06023: no backup or copy of datafile 6 found to restore
RMAN-06023: no backup or copy of datafile 5 found to restore
RMAN-06023: no backup or copy of datafile 4 found to 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_resetore 这个包来制定路径进行数据库的手工恢复,详细步骤如下:


解决办法:
     执行dbms_backup_restore包来进行恢复:
   
DECLARE
 devtype varchar2(256);
 done boolean;
 BEGIN
 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'FUN');
 sys.dbms_backup_restore.restoreSetDatafile;
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/DBBak2/oradata/WWL/system01.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/DBBak2/oradata/WWL/undotbs01.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/DBBak2/oradata/WWL/sysaux01.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/DBBak2/oradata/WWL/users01.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'/DBBak2/oradata/WWL/wwl001.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'/DBBak2/oradata/WWL/wwl002.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>07,toname=>'/DBBak2/oradata/WWL/wwl003.dbf');
 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/DBSoft/product/10.2.0/db_1/dbs/0pnh23kk_1_1', params=>null);
 sys.dbms_backup_restore.deviceDeallocate;
END;
/


执行步骤如下:

1、将数据库启动到nomount状态
SQL> startup nomount;
ORACLE instance started.

Total System Global Area  100663296 bytes
Fixed Size                  1217884 bytes
Variable Size              88083108 bytes
Database Buffers            8388608 bytes
Redo Buffers                2973696 bytes

 

2、执行手工恢复包
SQL>DECLARE
 done boolean;
 devtype varchar2(256);
 done boolean;
 BEGIN
 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'FUN');
  6   sys.dbms_backup_restore.restoreSetDatafile;
  7   sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/DBBak2/oradata/WWL/system01.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/DBBak2/oradata/WWL/undotbs01.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/DBBak2/oradata/WWL/wwl001.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/DBBak2/oradata/WWL/users01.dbf');
END;
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/DBBak2/oradata/WWL/wwl001.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'/DBBak2/oradata/WWL/wwl002.dbf');
 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'/DBBak2/oradata/WWL/wwl003.dbf');
 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/DBSoft/product/10.2.0/db_1/dbs/0mnh01jv_1_1', params=>null);
 sys.dbms_backup_restore.deviceDeallocate;
END;
 16  /

PL/SQL procedure successfully completed.

SQL>


3、生成备份控制文件的trace
SQL> alter database backup controlfile to trace;

Database altered.


4、重建控制文件
SQL>CREATE CONTROLFILE REUSE DATABASE "WWL" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 4 (
    '/DBBak2/oradata/WWL/redo4a.log',
    '/DBBak2/oradata/WWL/redo4b.log'
  ) SIZE 128M,
  GROUP 5 (
    '/DBBak2/oradata/WWL/redo5a.log',
    '/DBBak2/oradata/WWL/redo5b.log'
  ) SIZE 128M,
  GROUP 6 (
    '/DBBak2/oradata/WWL/redo6a.log',
    '/DBBak2/oradata/WWL/redo6b.log'
  ) SIZE 128M,
  GROUP 7 (
    '/DBBak2/oradata/WWL/redo7a.log',
    '/DBBak2/oradata/WWL/redo7b.log'
  ) SIZE 128M
-- STANDBY LOGFILE
DATAFILE
  '/DBBak2/oradata/WWL/system01.dbf',
  '/DBBak2/oradata/WWL/undotbs01.dbf',
  '/DBBak2/oradata/WWL/sysaux01.dbf',
  '/DBBak2/oradata/WWL/users01.dbf',
  '/DBBak2/oradata/WWL/wwl01.dbf',
  '/DBBak2/oradata/WWL/wwl02.dbf',
  '/DBBak2/oradata/WWL/wwl03.dbf'
CHARACTER SET ZHS16CGB231280

Database altered.

5、启动数据库
SQL>alter database open resetlogs;

Database altered.

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
WWL              OPEN

SQL>


建议最后对数据库做一次全备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: RMAN-03002、RMAN-06026RMAN-06023是Oracle Recovery Manager (RMAN)在执行恢复操作时可能遇到的错误代码。 RMAN-03002错误表示恢复命令失败。这可能是由于一些目标数据库的问题导致的,比如目标数据库中缺少必要的备份文件或归档日志。 RMAN-06026错误表示在恢复过程中找不到某些目标。这可能是由于备份文件或归档日志丢失或不可用导致的。 RMAN-06023错误表示在恢复过程中无法找到指定的备份集或备份片段。 要解决这些错误,可以采取以下步骤: 1. 确保目标数据库中存在所需的备份文件和归档日志。可以使用RMAN的LIST命令来检查备份和归档日志的可用性。 2. 如果备份文件或归档日志确实丢失或不可用,您可能需要重新运行备份操作以生成所需的备份文件或归档日志。 3. 如果您使用的是恢复目录,则还应确保恢复目录中包含正确的备份信息。可以使用RMAN的LIST命令来检查恢复目录中的备份信息。 如果您需要更详细的解决方案,可以参考Oracle官方文档中的相关文章\[2\]。此外,您还可以通过启用RMAN的调试模式并记录调试日志\[3\]来获取更多的调试信息,以帮助您诊断和解决问题。 #### 引用[.reference_title] - *1* *2* *3* [笔记:物理Standby搭建时恢复报错RMAN-03002 RMAN-06026 RMAN-06100](https://blog.csdn.net/Lizi_TT/article/details/107707123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值