`
sony-soft
  • 浏览: 1105108 次
文章分类
社区版块
存档分类
最新评论

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>


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

分享到:
评论

相关推荐

    Oracle 10g启动后报ORA-16038错误的解决方法

    在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: ...

    BLOG_【故障处理】Oracle_lhr_ORA-19809错误处理.pdf

    这一错误可能发生在RMAN(Recovery Manager)执行备份、还原或恢复操作时。 #### 1. 故障处理概述 故障处理通常包含以下几个步骤: - 故障分析:了解错误发生的具体环境和上下文。 - 故障诊断:通过日志、数据库...

    oracle11g 内部参数出错问题

    Oracle 11g 内部错误代码 ORA-00600 是一个非常通用的错误,它表示数据库遇到了一个无法处理的内部错误或异常情况。这个错误通常涉及到Oracle数据库的底层结构,如数据块、索引或者内存管理等,且参数列表可以提供...

    RMAN 老师的经典

    RMAN(Recovery Manager)是Oracle数据库提供的一种强大的备份与恢复工具。它允许DBA对数据库进行备份、恢复以及灾难恢复等操作,从而确保数据的安全性和系统的高可用性。RMAN的主要功能包括: 1. **完整备份**:...

    离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法

    解决ORA-01033错误通常需要定位具体的原因并采取相应的措施,常见的解决步骤包括: 1. **检查数据文件状态**:确保所有数据文件都完好无损且可用。 2. **重建控制文件**:如果控制文件损坏,可以通过备份控制文件...

    【RMAN】rm -rf 误操作的恢复过程.pdf

    Oracle数据库作为一款成熟的数据库管理系统,拥有强大的数据备份与恢复功能,但在日常运维过程中,由于人为失误,使用rm -rf命令错误删除数据库文件的事件时有发生。本文针对没有备份情况下,如何利用Oracle数据库...

    【RMAN】TSPITR表空间基于时间点的恢复.pdf

    Oracle数据库提供了强大的备份与恢复功能,其中RMAN(Recovery Manager)是Oracle提供的一个专门用于备份、恢复和迁移数据库的命令行工具。本文将详细探讨通过RMAN进行TSPITR(Tablespace Point-In-Time Recovery,...

    oracle数据库ORA-01196错误解决办法分享

    Oracle数据库在运行过程中可能会遇到各种错误,其中ORA-01196是一个常见的错误,通常与数据文件在介质恢复过程中的不一致性有关。这个错误通常出现在数据库试图打开时,表明某个数据文件的状态与控制文件记录的信息...

    Oracle数据库RMAN的自动备份脚本

    通过上述分析可以看出,该Oracle RMAN自动备份脚本是一个精心设计的解决方案,旨在提供高效、可靠的数据库备份与恢复能力。它不仅考虑到了不同级别的备份需求,还充分考虑了备份文件的管理和清理,确保了系统的稳定...

    oracle rman备份脚本

    RMAN能够提供完整的数据库备份和恢复解决方案,对于Oracle RAC(Real Application Clusters)环境而言更是如此。本文将通过分析一个特定的Oracle RAC RMAN备份脚本,来深入探讨其工作原理和配置要点。 #### 标题...

    oracle重启报错ORA-00702解决办法

    2. **日志分析**:查看 `/var/log/oracle/sid/`目录下的alert日志,找出错误原因。 3. **数据文件检查**:与Windows类似,使用`sqlplus / as sysdba`连接数据库,检查数据文件和控制文件状态。 4. **权限和文件系统...

    oracle 10g 管理 sql 错误解决

    本资料集主要针对Oracle 10g中的SQL错误处理进行了解答,旨在帮助用户解决问题并提高工作效率。 在Oracle 10g中,SQL错误通常表现为错误代码和错误消息,如ORA-00001(唯一约束违反)、ORA-01422(精确提取超过指定...

    Oracle数据库操作常见错误及解决方案

    本文将深入解析两个常见的Oracle错误及其解决方案:ORA-01650和ORA-01652,并提供相关的排查和解决策略。 **ORA-01650: unable to extend rollback segment NAME by NUM in tablespace NAME** 这个错误表明回滚段...

    这样解决ORACLE连接错误

    ### 解决Oracle连接错误的方法 #### 背景与问题概述 在使用Oracle数据库时,可能会遇到各种连接问题,这些问题通常表现为不同的错误代码,如ORA-28547、ORA-24324、ORA-01041等。这些错误不仅影响了数据库的正常...

    断电与ORA-600问题集

    本文将详细介绍不同类型的ORA-600错误及其解决方案,帮助读者理解如何应对这些复杂问题。 ##### 1.2. 常见步骤—METELINK上查询 由于ORA-600错误通常涉及Oracle数据库内部组件的问题,因此可以通过Oracle官方支持...

    ORACLE DB数据库常见问题解决及诊断技巧集锦-ORACLE DBA故障修复必备手册

    #### ORA-4031错误分析 ORA-4031错误通常表示内存分配失败,即Oracle无法在SGA(共享全局区)中分配额外的空间。这可能是由于SGA设置不当或内存资源不足造成的。解决方法包括: 1. **增加SGA_MAX_SIZE和SGA_TARGET...

    Oracle官方文档CHM合集-Oracle9i错误代码

    本合集聚焦于Oracle9i版本的错误代码,对于理解并解决与该版本相关的数据库问题具有极高的价值。Oracle9i是Oracle数据库的第9个主要版本,发布于2001年,它在性能、可扩展性和安全性方面都有显著提升,同时也引入了...

    启动oracle数据库报错:ORA-00600

    在描述中提到的情况,错误可能是在RMAN(恢复管理器)执行恢复操作后出现的。 RMAN是Oracle数据库的一个强大工具,用于备份、恢复和维护数据库。在进行恢复操作时,如果数据库未能正常启动,RMAN可以通过执行一系列...

    ORACLE DB故障解决技巧

    ORA-1801错误与时间戳关联,而ORA-7445错误涉及到Oracle运行时错误,这些错误信息同样需要通过详细诊断来解决。 4. Oracle数据库性能问题:性能问题涉及到多个方面,包括数据库的监听器挂起及性能问题、SQL性能问题...

    Oracle9i错误代码

    SQLCODE返回错误代码,SQLERRM返回与错误相关的消息文本。 7. 数据库恢复:某些严重错误可能导致数据库无法正常运行,此时可能需要使用RMAN(Recovery Manager)进行备份恢复或使用其他故障恢复技术。 8. 服务请求...

Global site tag (gtag.js) - Google Analytics