RMAN duplicate for standby失败解决过程

来源:互联网 发布:寻找质数的算法 编辑:程序博客网 时间:2024/06/05 22:31

RMAN duplicate for standby失败解决过程

在用rman duplicate to standby生成备库的时候总是不成功,多次尝试均是下面的错误:

 

RMAN> duplicate target database for standby nofilenamecheck;

 

Starting Duplicate Db at 16-JAN-2013 12:22:45

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=25 device type=DISK

 

contents of Memory Script:

{

   restore clone standby controlfile;

}

executing Memory Script

 

Starting restore at 16-JAN-2013 12:22:49

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: restoring control file

channel ORA_AUX_DISK_1: reading from backup piece /backup/dg_back_07nvi815_1_1

channel ORA_AUX_DISK_1: piece handle=/backup/dg_back_07nvi815_1_1 tag=TAG20130116T110405

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01

output file name=/oradata/e7dg1/controlfile/current1.ctl

output file name=/oradata/e7dg1/controlfile/current2.ctl

Finished restore at 16-JAN-2013 12:22:52

 

contents of Memory Script:

{

   sql clone 'alter database mount standby database';

}

executing Memory Script

 

sql statement: alter database mount standby database

RMAN-05529: WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed to disk group only.

 

contents of Memory Script:

{

   set newname for tempfile  1 to

 "+data";

   switch clone tempfile all;

   set newname for datafile  1 to

 "+data";

   set newname for datafile  2 to

 "+data";

   set newname for datafile  3 to

 "+data";

   set newname for datafile  4 to

 "+data";

   set newname for datafile  5 to

 "+data";

   restore

   clone database

   ;

}

executing Memory Script

 

executing command: SET NEWNAME

 

renamed tempfile 1 to +data in control file

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

Starting restore at 16-JAN-2013 12:23:02

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_AUX_DISK_1: restoring datafile 00001 to +data

channel ORA_AUX_DISK_1: restoring datafile 00002 to +data

channel ORA_AUX_DISK_1: restoring datafile 00003 to +data

channel ORA_AUX_DISK_1: restoring datafile 00004 to +data

channel ORA_AUX_DISK_1: restoring datafile 00005 to +data

channel ORA_AUX_DISK_1: reading from backup piece /backup/dg_back_05nvi7sn_1_1

channel ORA_AUX_DISK_1: ORA-19870: error while restoring backup piece /backup/dg_back_05nvi7sn_1_1

ORA-19504: failed to create file "+DATA"

ORA-17502: ksfdcre:4 Failed to create file +DATA

ORA-15001: diskgroup "DATA" does not exist or is not mounted

ORA-15077: could not locate ASM instance serving a required diskgroup

ORA-29701: unable to connect to Cluster Synchronization Service

 

failover to previous backup

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_AUX_DISK_1: restoring datafile 00001 to +data

channel ORA_AUX_DISK_1: restoring datafile 00002 to +data

channel ORA_AUX_DISK_1: restoring datafile 00003 to +data

channel ORA_AUX_DISK_1: restoring datafile 00004 to +data

channel ORA_AUX_DISK_1: restoring datafile 00005 to +data

channel ORA_AUX_DISK_1: reading from backup piece +FRA/e7rac/backupset/2013_01_15/nnndf0_tag20130115t162421_0.278.804791379

channel ORA_AUX_DISK_1: ORA-19870: error while restoring backup piece +FRA/e7rac/backupset/2013_01_15/nnndf0_tag20130115t162421_0.278.804791379

ORA-19505: failed to identify file "+FRA/e7rac/backupset/2013_01_15/nnndf0_tag20130115t162421_0.278.804791379"

ORA-17503: ksfdopn:2 Failed to open file +FRA/e7rac/backupset/2013_01_15/nnndf0_tag20130115t162421_0.278.804791379

ORA-15001: diskgroup "FRA" does not exist or is not mounte

failover to previous backup

 

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of Duplicate Db command at 01/16/2013 12:23:06

RMAN-05501: aborting duplication of target database

RMAN-05556: not all datafiles have backups that can be recovered to SCN consistent

RMAN-03015: error occurred in stored script Memory Script

RMAN-06026: some targets not found - aborting 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

 

RMAN  >

该问题困扰了我两天,怎么检查也检查不出错误,重做也是同样的问题。

问题1

set newname for tempfile  1 to

 "+data";

这个问题是参数中少写临时表空间的转换参数:

*.db_file_name_convert='+DATA/e7rac/tempfile/','/oradata/e7dg2/datafile/'

加入该参数后,将变成这样:

   set newname for tempfile  1 to

 "/oradata/e7dg2/datafile/temp.263.804695143";

问题2

Datafile 部分  

set newname for datafile  1 to

 "+data";

   set newname for datafile  2 to

 "+data";

   set newname for datafile  3 to

 "+data";

   set newname for datafile  4 to

 "+data";

   set newname for datafile  5 to

 "+data";

参数已经配置:

*.db_file_name_convert='+DATA/E7RAC/DATAFILE/','/oradata/e7dg2/datafile/'

最后发现是大小写错误:上面路径来自于asmcmd>中的pwd,参数修改为下面的情况后正常。

*.db_file_name_convert='+DATA/e7rac/datafile/','/oradata/e7dg2/datafile/'

正确的路径参数是来自于命令:

select file_name from dba_data_files;

 

最后正确的执行过程:

RMAN> duplicate target database for standby nofilenamecheck;

 

Starting Duplicate Db at 17-JAN-2013 16:42:46

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=20 device type=DISK

 

contents of Memory Script:

{

   restore clone standby controlfile;

}

executing Memory Script

 

Starting restore at 17-JAN-2013 16:42:49

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: restoring control file

ORA-19625: error identifying file /apps/oracle/product/11.2.0/dbhome_1/dbs/snapcf_e7rac1.f

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

ORA-19600: input file is control file  (/apps/oracle/product/11.2.0/dbhome_1/dbs/snapcf_e7rac1.f)

ORA-19601: output file is control file  (/oradata/e7dg2/controlfile/current1.ctl)

 

failover to previous backup

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: restoring control file

channel ORA_AUX_DISK_1: reading from backup piece /backup/dg_back_07nvi815_1_1

channel ORA_AUX_DISK_1: piece handle=/backup/dg_back_07nvi815_1_1 tag=TAG20130116T110405

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01

output file name=/oradata/e7dg2/controlfile/current1.ctl

output file name=/oradata/e7dg2/controlfile/current2.ctl

Finished restore at 17-JAN-2013 16:42:51

 

contents of Memory Script:

{

   sql clone 'alter database mount standby database';

}

executing Memory Script

 

sql statement: alter database mount standby database

 

contents of Memory Script:

{

   set newname for tempfile  1 to

 "/oradata/e7dg2/datafile/temp.263.804695143";

   switch clone tempfile all;

   set newname for datafile  1 to

 "/oradata/e7dg2/datafile/system.256.804692297";

   set newname for datafile  2 to

 "/oradata/e7dg2/datafile/sysaux.257.804692309";

   set newname for datafile  3 to

 "/oradata/e7dg2/datafile/undotbs1.258.804692313";

   set newname for datafile  4 to

 "/oradata/e7dg2/datafile/users.259.804692315";

   set newname for datafile  5 to

 "/oradata/e7dg2/datafile/undotbs2.264.804696469";

   restore

   clone database

   ;

}

executing Memory Script

 

executing command: SET NEWNAME

 

renamed tempfile 1 to /oradata/e7dg2/datafile/temp.263.804695143 in control file

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

Starting restore at 17-JAN-2013 16:42:58

using channel ORA_AUX_DISK_1

 

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_AUX_DISK_1: restoring datafile 00001 to /oradata/e7dg2/datafile/system.256.804692297

channel ORA_AUX_DISK_1: restoring datafile 00002 to /oradata/e7dg2/datafile/sysaux.257.804692309

channel ORA_AUX_DISK_1: restoring datafile 00003 to /oradata/e7dg2/datafile/undotbs1.258.804692313

channel ORA_AUX_DISK_1: restoring datafile 00004 to /oradata/e7dg2/datafile/users.259.804692315

channel ORA_AUX_DISK_1: restoring datafile 00005 to /oradata/e7dg2/datafile/undotbs2.264.804696469

channel ORA_AUX_DISK_1: reading from backup piece /backup/dg_back_05nvi7sn_1_1

channel ORA_AUX_DISK_1: piece handle=/backup/dg_back_05nvi7sn_1_1 tag=TAG20130116T110143

channel ORA_AUX_DISK_1: restored backup piece 1

channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:25

Finished restore at 17-JAN-2013 16:44:24

 

contents of Memory Script:

{

   switch clone datafile all;

}

executing Memory Script

 

datafile 1 switched to datafile copy

input datafile copy RECID=1 STAMP=804960154 file name=/oradata/e7dg2/datafile/system.256.804692297

datafile 2 switched to datafile copy

input datafile copy RECID=2 STAMP=804960154 file name=/oradata/e7dg2/datafile/sysaux.257.804692309

datafile 3 switched to datafile copy

input datafile copy RECID=3 STAMP=804960154 file name=/oradata/e7dg2/datafile/undotbs1.258.804692313

datafile 4 switched to datafile copy

input datafile copy RECID=4 STAMP=804960154 file name=/oradata/e7dg2/datafile/users.259.804692315

datafile 5 switched to datafile copy

input datafile copy RECID=5 STAMP=804960154 file name=/oradata/e7dg2/datafile/undotbs2.264.804696469

Finished Duplicate Db at 17-JAN-2013 16:44:55

原创粉丝点击