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>
建议最后对数据库做一次全备。
分享到:
相关推荐
RMAN - Getting Started
rman-xttconvert_2.0.zip
rman-xttconvert_2.0.rar,mos下载的,需要的拿走。。。
ORACLR中的问题
Oracle-Rman备份详细讲解
如何使用Oracle 11g R2的RMAN機制進行備份、備援、資料庫複製等工作
[oracle@source]$ unzip rman_xttconvert_VER4.zip Archive: rman_xttconvert_v3.zip inflating: xtt.properties inflating: xttcnvrtbkupdest.sql inflating: xttdbopen.sql inflating: xttdriver.pl inflating: ...
Oracle-使用RMAN-将-DB-从10g-直接-Restore-到11g-示例
用磁带进行oracle数据库恢复 只恢复部分表空间
三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思笔记Rman。三思...
oracle 异构平台数据库迁移必备工具,脚本。rman_xttconvert_2.0 rman_xttconvert_v3 rman_xttconvert_VER4 统一打包。
RMAN全备脚本,我们公司搭用的oracle rac,所以ASM备份恢复通过rman实现,已实践!
【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本【RMAN】RMAN脚本中使用替换变量--windows 下rman全备脚本
《[三思笔记]一步一步学rman(01)-进入rman.doc》 《[三思笔记]一步一步学rman(02)-rman命令知多少.doc》 《[三思笔记]一步一步学rman(03)-rman备份演练初级篇.doc》 《[三思笔记]一步一步学rman(04)-rman备份演练...
VEEAM 备份oracle rac数据库手册
关于跨平台迁移表空间的一些初始脚本 xtt.properties xttcnvrtbkupdest.sql xttdbopen.sql xttdriver.pl xttprep.tmpl xttstartupnomount.sql
oracle 回闪日志 满了 ORA-03113 通信信道结束 进入 rman 删除日志
oracle 9i Rman 備份及恢復步驟
第一篇 进入RMAN 第二篇 RMAN命令知多少 第三篇 RMAN备份演练初级篇 第四篇 RMAN备份演练进阶篇 第五篇 RMAN基础知识补充 一 第六篇 实战RMAN备份 第七篇 RMAN基础知识补充 二 第八篇 演练RMAN恢复 第九篇 实战rman...