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>

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

时间: 2024-09-21 14:07:02

RMAN-06026 错误分析与解决的相关文章

【RMAN】RMAN恢复各类错误解决总结

[RMAN]RMAN恢复各类错误解决总结 第一章 RMAN恢复错误 1.1  不完全恢复错误 1.1.1  RMAN-06023 RMAN-06023 : no backup or copy of datafile found to restore 说明 RMAN 的备份信息如下:   RMAN> list backupset summary; List of Backups =============== Key     TY LV S Device Type Completion Time

ORA-03113错误分析与解决

前言 每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-1547 ,ORA-904,ORA-1578 ......).有些错误由于频繁出现.原因复杂而被 Oracle DBA 们戏称之为"经典的错误".其中ORA-3113 "end of file on communication channel" 就是这样的一个. 我们可以简单的把这个错误理解为Oracle客户端进程和数据库后台进程连接中断.不过,导致这个错误的原因实际上有很多种:对数据

MySQL 常见错误分析与解决方法_Mysql

 一.Can't connect to MySQL server on 'localhost'(10061)?     翻译:不能连接到localhost 上的mysql?分析:这说明"localhost"计算机是存在的,但在这台机器上却没提供MySQL服务.?需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误.?解决:既然没有启动那就去启动这台机子的mysql.如果启动不成功,多数是因为你的my.ini配置的有问题.重新配置其即可.?如果觉得mysql负

Oracle 12c PDB迁移及ORA-00600错误分析和解决

最近迁移一台测试环境,准备整合到12c的PDB,常规的思路是用Datapump导出导入,对于数据较大的环境来说这个时间会比较长,为此自己也尝试先升级这个测试库,然后加入到CDB中去. 升级的过程就不多说了,其实对于大多数常规的业务来说,本身不是难点. 把升级后的NON-CDB加入到CDB中,基本是下面的思路,先把数据启动到只读模式,然后到处一个配置文件,加载到CDB的重要地方就是使用这个配置文件.先做检查. sqlplus / as sysdba SQL> select name, CDB fr

小麦苗BLOG文章索引

小麦苗BLOG文章索引            自从2014年7月1号开始写blog到2015年5月5日,历时10个月的时间,大概写了90篇文章,这blog多了就乱了,今天抽空出来整理整理,方便大家也方便自己阅读,本文将一直更新,另外,最后我把所有的blog文章全列出来,可能会有用.    小麦苗的所有文章:itpub文章链接-小麦苗.zip     2015年06月03日更新一次,我写的blog数量:109 篇    2015年07月03日更新一次,我写的blog数量:126 篇    2016

《Linux/UNIX OpenLDAP实战指南》——2.3 Linux平台安装

2.3 Linux平台安装 2.3.1 yum用途及语法 yum仓库主要用于解决软件包依赖关系(这里以本地yum源为例进行配置). yum仓库配置文件的语法及参数如下. 1.yum配置文件语法 yum配置文件语法如下. # cat /etc/yum.repos.d/define.repo [repo_name] name= baseurl= enabled= gpgcheck= gpgkey= 2. yum配置文件语法解释 yum配置文件的语法解释如下. [repo_name] 含义:[ ]内是

《Linux/UNIX OpenLDAP实战指南》——导读

前言 随着互联网行业的不断发展,企业也在不断壮大,为了满足客户需求,后端服务器数量日益增加.此时对于后端运维管理人员而言,工作量也在不断增加,许多资源管理人力已经无法满足,反复的工作也使运维管理人员变得枯燥无味.此时开源自动化运维管理就进入运维人员眼线,例如账号统一管理的OpenLDAP.自动化部署的Puppet.自动化安装服务器的Cobbler.云管理的OpenStack等. 由于作者工作环境设备数量达1000+.应用管理平台40套+,同时由于服务器设备的增加,账号的数量也在不断增加,账号管理

javascript-Invalid property in <set> 出错请教

问题描述 Invalid property in <set> 出错请教 testTarget.jsp <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> no

Ubuntu安装MySQL

一.验证原有主机是否已安装MySQL:     这里主要是运行sudo netstat -tap | grep mysql命令查看是否有MySQL监听的端口: $ netstat -tap | grep mysql     二.安装MySQL:     在确认主机未安装MySQL后,运行命令sudo apt-get install mysql-server mysql-client进行在线安装: $ sudo apt-get install mysql-server mysql-client