Samdy_Chan 发表于 2013-03-13 16:15

在RMAN中恢复数据副本时出错

本帖最后由 Samdy_Chan 于 2013-03-13 16:18 编辑

大家好,我现在的数据库做了不完成恢复后,数据库副本号是489,如下:
RMAN> list incarnation of database;


List of Database Incarnations
DB KeyInc Key DB NameDB ID            STATUSReset SCNReset Time
------- ------- -------- ---------------- --- ---------- ----------
1       11      DEMO   3547552046       PARENT1          2005-06-30 19:09:40
1       12      DEMO   3547552046       PARENT446075   2012-12-31 13:21:52
1       13      DEMO   3547552046       PARENT1589443    2013-01-18 16:39:36
1       14      DEMO   3547552046       PARENT1592123    2013-01-18 17:26:45
1       15      DEMO   3547552046       PARENT1592990    2013-01-18 17:41:59
1       16      DEMO   3547552046       PARENT1603632    2013-01-19 21:57:46
1       2       DEMO   3547552046       PARENT1604344    2013-01-19 22:13:08
1       489   DEMO   3547552046       CURRENT 1607900    2013-03-13 15:38:13

我在控制文件(select checkpoint_change# from v$database)和数据文件的SCN值为1607756是做了数据库全备后的SCN值,现在我想恢复到之前的数据库副本号2,于是我执行了以下命令脚本:

RMAN> startup force mount;

Oracle instance started
database mounted

Total System Global Area   167772160 bytes

Fixed Size                     1218292 bytes
Variable Size               75499788 bytes
Database Buffers            83886080 bytes
Redo Buffers                   7168000 bytes

RMAN> reset database to incarnation 2;

database reset to incarnation 2


RMAN> run {
2> startup force nomount;
3> set until scn=1607756;##这里的scn=1607756是v$database 视图中的checkpoint_change#的值,不是current_scn 的值,有问题吗?
4> restore controlfile;
5> }

Oracle instance started

Total System Global Area   167772160 bytes

Fixed Size                     1218292 bytes
Variable Size               75499788 bytes
Database Buffers            83886080 bytes
Redo Buffers                   7168000 bytes

executing command: SET until clause

Starting restore at 2013-03-13 15:44:34
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=156 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=155 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=154 devtype=DISK
allocated channel: ORA_DISK_5
channel ORA_DISK_5: sid=153 devtype=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: sid=152 devtype=DISK
allocated channel: ORA_DISK_7
channel ORA_DISK_7: sid=151 devtype=DISK
allocated channel: ORA_DISK_8
channel ORA_DISK_8: sid=150 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_7.bak
channel ORA_DISK_1: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_7.bak tag=TAG20130313T152750
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output filename=/ora01/oracle/oradata/demo/control01.ctl
output filename=/ora01/oracle/oradata/demo/control02.ctl
Finished restore at 2013-03-13 15:44:38

RMAN> run {
2> sql 'alter database mount';
3> restore database;
4> recover database;
5> sql 'alter database open resetlogs';
6> }

sql statement: alter database mount
released channel: ORA_DISK_1
released channel: ORA_DISK_2
released channel: ORA_DISK_3
released channel: ORA_DISK_4
released channel: ORA_DISK_5
released channel: ORA_DISK_6
released channel: ORA_DISK_7
released channel: ORA_DISK_8

Starting restore at 2013-03-13 15:46:21
Starting implicit crosscheck backup at 2013-03-13 15:46:21
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=150 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=151 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=152 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=153 devtype=DISK
allocated channel: ORA_DISK_5
channel ORA_DISK_5: sid=154 devtype=DISK
allocated channel: ORA_DISK_6
channel ORA_DISK_6: sid=155 devtype=DISK
allocated channel: ORA_DISK_7
channel ORA_DISK_7: sid=156 devtype=DISK
allocated channel: ORA_DISK_8
channel ORA_DISK_8: sid=157 devtype=DISK
Crosschecked 4 objects
Finished implicit crosscheck backup at 2013-03-13 15:46:24

Starting implicit crosscheck copy at 2013-03-13 15:46:24
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
Crosschecked 1 objects
Finished implicit crosscheck copy at 2013-03-13 15:46:24

searching for all files in the recovery area
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /ora01/oracle/flash_recovery_area/DEMO/autobackup/2013_02_28/o1_mf_s_808596764_8lycdwg6_.bkp
File Name: /ora01/oracle/flash_recovery_area/DEMO/autobackup/2013_03_01/o1_mf_s_808933639_8m0q87q6_.bkp

using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8

channel ORA_DISK_3: starting datafile backupset restore
channel ORA_DISK_3: specifying datafile(s) to restore from backup set
restoring datafile 00004 to /ora01/oracle/oradata/demo/users01.dbf
channel ORA_DISK_3: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_5.bak
channel ORA_DISK_4: starting datafile backupset restore
channel ORA_DISK_4: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /ora01/oracle/oradata/demo/system01.dbf
channel ORA_DISK_4: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_2.bak
channel ORA_DISK_5: starting datafile backupset restore
channel ORA_DISK_5: specifying datafile(s) to restore from backup set
restoring datafile 00007 to /ora01/oracle/oradata/demo/user_01.dbf
channel ORA_DISK_5: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_6.bak
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00003 to /ora01/oracle/oradata/demo/sysaux01.dbf
channel ORA_DISK_1: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_3.bak
channel ORA_DISK_2: starting datafile backupset restore
channel ORA_DISK_2: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /ora01/oracle/oradata/demo/undotbs01.dbf
channel ORA_DISK_2: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_4.bak
channel ORA_DISK_6: starting datafile backupset restore
channel ORA_DISK_6: specifying datafile(s) to restore from backup set
restoring datafile 00005 to /ora01/oracle/oradata/demo/test_tbs01.dbf
channel ORA_DISK_6: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_8.bak
channel ORA_DISK_7: starting datafile backupset restore
channel ORA_DISK_7: specifying datafile(s) to restore from backup set
restoring datafile 00006 to /ora01/oracle/oradata/demo/test_tbs02.dbf
channel ORA_DISK_7: reading from backup piece /ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_9.bak
channel ORA_DISK_3: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_5.bak tag=TAG20130313T152750
channel ORA_DISK_3: restore complete, elapsed time: 00:00:24
channel ORA_DISK_5: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_6.bak tag=TAG20130313T152750
channel ORA_DISK_5: restore complete, elapsed time: 00:00:24
channel ORA_DISK_6: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_8.bak tag=TAG20130313T152750
channel ORA_DISK_6: restore complete, elapsed time: 00:00:24
channel ORA_DISK_2: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_4.bak tag=TAG20130313T152750
channel ORA_DISK_2: restore complete, elapsed time: 00:00:27
channel ORA_DISK_1: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_3.bak tag=TAG20130313T152750
channel ORA_DISK_1: restore complete, elapsed time: 00:00:28
channel ORA_DISK_7: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_9.bak tag=TAG20130313T152750
channel ORA_DISK_7: restore complete, elapsed time: 00:00:28
channel ORA_DISK_4: restored backup piece 1
piece handle=/ora01/oracle/oradata/demo/rman_bak/database_fullback/DEMO_2.bak tag=TAG20130313T152750
channel ORA_DISK_4: restore complete, elapsed time: 00:00:30
Finished restore at 2013-03-13 15:46:55

但最后提示了以下“在恢复目录中找不到目标数据库的副本”:

Starting recover at 2013-03-13 15:46:55
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 03/13/2013 15:46:55
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20003: target database incarnation not found in recovery catalog
-------
请问这是怎么回事?错在哪里了?应如何解决才能恢复到数据库之前副本号2呢?
待复,感谢!

Samdy_Chan 发表于 2013-03-13 17:13

哪位大侠可以帮忙解答下吗?感谢!

Samdy_Chan 发表于 2013-03-17 17:18

有人愿意帮忙解答一下吗?谢谢!
页: [1]
查看完整版本: 在RMAN中恢复数据副本时出错