rman duplicate for standby失败解决过程在用rman duplicate to standby 生成备库的时候总是不成功,多次尝试均是下面的错误:rm
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