某个库用nbu做了一个全库备份但不知什么原因,输出日志没了,为了验证备份有效性,使用restore validate database 验证备份有效性。
报错
RMAN> restore validate database;
Starting restore at 07-SEP-2007 20:38:21
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=26 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 02/07/2017 10:38:22
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no channel*****
查询mos文章发现某文章比较符合
RMAN RESTORE fails with RMAN-06023 or ORA-19505 or RMAN-06100 inspite of proper backups (文档 ID 457769.1)
APPLIES TO:
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.
***Checked for relevance on 20-July-2015***
SYMPTOMS
+ We need to restore database/datafile using the following backup (BackupSet Key# 3):
RMAN> list backup of database;
using target database control file instead of recovery catalog
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ --------------------
3 Full 347.09M DISK 00:00:41 07-SEP-2007 19:38:55
BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20070907T193814
Piece Name: D:\ORACLE\ORADATA\BACKUP\03IRC6P6_1_1
List of Datafiles in backup set 3
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- -------------------- ----
1 Full 360352 07-SEP-2007 19:38:14 D:\ORACLE\ORADATA\ORA10G\SYSTEM01.DBF
2 Full 360352 07-SEP-2007 19:38:14 D:\ORACLE\ORADATA\ORA10G\UNDOTBS01.DBF
3 Full 360352 07-SEP-2007 19:38:14 D:\ORACLE\ORADATA\ORA10G\SYSAUX01.DBF
+ However the restore fails with following error:
RMAN> restore datafile 1;
Starting restore at 07-SEP-2007 20:38:21
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=46 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/07/2007 20:38:22
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 1 found to restore
OR, with following errors when looking for other backups:
(In case other previous backups exist for this database but we are interested in restoring from the latest backup with BackupSet Key# 3)
ORA-19870: error reading backup piece D:\ORACLE\ORADATA\BACKUP\01IRC6C4_1_1
ORA-19505: failed to identify file "D:\ORACLE\ORADATA\BACKUP\01IRC6C4_1_1"
ORA-27041: unable to open file
OSD-04002: unable to open file
OR
RMAN-06026: some targets not found - aborting restore
RMAN-06100: no channel to restore a backup or copy of datafile 1
Or, with below errors after no backup is found and RMAN tries to create the datafile:
creating datafile fno=1 name=+DATA/pzrsa/datafile/system.288.585590761
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/21/2006 21:41:34
ORA-01180: can not create datafile 1
ORA-01110: data file 1: '+DATA/pzrsa/datafile/system.288.585590761'
+ We have verified that the backupset 3 is available and accessible:
RMAN> crosscheck backupset 3;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=D:\ORACLE\ORADATA\BACKUP\03IRC6P6_1_1 recid=3 stamp=632691494
Crosschecked 1 objects
+ Also the backup exists on DISK and the allocated default channel is of type DISK so there is no mismatch of allocated and required channel type.
+ The checkpoint SCN of datafile 1 in backupset 3 i.e. 360352, seems to belong to the current incarnation (Reset SCN=360002) so there is no mismatch in the incarnation as well:
RMAN> list incarnation of database;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORA10G 3944965565 PARENT 289857 19-AUG-2007 22:31:27
2 2 ORA10G 3944965565 CURRENT 360002 07-SEP-2007 19:44:56
CAUSE
Debug the restore session using:
C:\>rman target / log=rmanLog.txt trace=rmanTrace.txt
RMAN> debug on;
RMAN> restore datafile 1;
RMAN> debug off;
RMAN> exit;
rmanLog.txt
===========
RMAN-03090: Starting restore at 07-SEP-2007 21:07:14
RMAN-06009: using target database control file instead of recovery catalog
RMAN-08030: allocated channel: ORA_DISK_1
RMAN-08500: channel ORA_DISK_1: sid=49 devtype=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 09/07/2007 21:08:34
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 1 found to restore
rmanTrace.txt
=============
(Search the debug trace for Checkpoint SCN: "360352" of datafile #1 in backupset #3)
...
DBGRCVMAN: CheckRecAction called 08/19/07 22:31:27; rlgscn=289857
DBGRCVMAN: CheckRecAction: inc=1,toscn=360352exceeds 360002
DBGRCVMAN: CheckRecAction:belongs to orphan branch of this incarnation:
...
The debug trace reveals that the backupset 3 belongs to an ORPHAN branch of previous incarnation. Please refer the documentation for more information on Orphan backups and incarnations:
Oracle Database Backup and Recovery Basics 10g Release 2 (10.2)
7.6.2.3 Database Incarnations and Orphaned Backups
This problem usually occurs when restoring on a new instance with FRA configured. When restoring database using a backup controlfile, RMAN automatically catalogs all archives inside the FRA. If there are left over archives, they can add incarnation branches
to the restored controlfile causing this issue.
If this is the case, you may consider cleaning up the FRA before starting restore/recover process.
SOLUTION
Restore a control file from the previous incarnation in which the changes represented in the orphan backup has not been abandoned
OR
Reset the database incarnation in current controlfile to the previous one and perform the restore:
RMAN> list incarnation of database;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORA10G 3944965565 PARENT 289857 19-AUG-2007 22:31:27
2 2 ORA10G 3944965565 CURRENT 360002 07-SEP-2007 19:44:56
RMAN> reset database to incarnation 1;
database reset to incarnation 1
RMAN> restore datafile 1;
Starting restore at 07-SEP-2007 21:23:55
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=46 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to D:\ORACLE\ORADATA\ORA10G\SYSTEM01.DBF
channel ORA_DISK_1: reading from backup piece D:\ORACLE\ORADATA\BACKUP\03IRC6P6_1_1
channel ORA_DISK_1: restored backup piece 1
piece handle=D:\ORACLE\ORADATA\BACKUP\03IRC6P6_1_1 tag=TAG20070907T193814
channel ORA_DISK_1: restore complete, elapsed time: 00:00:36
Finished restore at 07-SEP-2007 21:24:32
总之文章中所描述的是control文件过旧等问题,但我这里明显不是。
后来仔细想一下,备份是用nbu备份的,通道类型是sbt,而我在执行 restore validate database时是直接敲的命令,那么它使用的通道类型是
disk的。
基于此情况,查看nbu脚本,做出如下修改:
RUN{
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';
send channel CHANNEL ch00 'NB_ORA_POLICY=tmoo_oracle,NB_ORA_CLIENT=tmoo_nbu,NB_ORA_SERV=nbumaster,NB_ORA_SCHED=Default-Application-Backup-tmoo';
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';
send channel CHANNEL ch01 'NB_ORA_POLICY=tmoo_oracle,NB_ORA_CLIENT=tmoo_nbu,NB_ORA_SERV=nbumaster,NB_ORA_SCHED=Default-Application-Backup-tmoo';
backup validate database;
release channel ch00;
release channel ch01;
}
--send channel 中的内容是nbu与数据库的一个接口写法,在备份脚本中找到该配置