恢复管理器:> Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: RAC11G(DBID=1712482917)
已连接到辅助数据库: RAC11G(未装载)
执行DUPLICATE时报错:
RMAN> duplicate target database for standby
2> db_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
3> dorecover
4> from active database
5> spfile
6> parameter_value_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
7> set log_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
8> set log_archive_dest_1='LOCATION=+DATA/RAC11G'
9> ;
启动Duplicate Db于09-9月-08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_AUX_DISK_1
通道ORA_AUX_DISK_1: SID=37设备类型=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: Duplicate Db命令(在09/09/2008 15:38:01上)失败
RMAN-06764: Must specify db_unique_name with FOR STANDBY
由于DUPLICATE创建STANDBY的时候会根据命令中指定的参数和源数据库的参数创建出STANDBY数据库的初始化参数,因此这里需要指明DB_UNIQUE_NAME参数,如此之外,应该把所有STANDBY数据库使用的参数配置完成。
除此之外,应该保证STANDBY数据库中配置了源数据库服务名RAC11G,而源数据库中配置了STANDBY数据库服务名RAC11G_S。
再次执行DUPLICATE操作:
RMAN> duplicate target database for standby
2> db_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
3> dorecover
4> from active database
5> spfile
6> parameter_value_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
7> set log_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
8> set fal_client='RAC11G_S'
9> set fal_server='RAC11G'
10> set log_archive_dest_1='LOCATION=+DATA/RAC11GVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rac11g_s'
11> set log_archive_dest_2='SERVICE=rac11gLGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=rac11g'
12> set standby_archive_dest='+DATA/RAC11G'
13> set db_unique_name='rac11g_s'
14> ;
启动Duplicate Db于09-9月-08
使用通道ORA_AUX_DISK_1
内存脚本的内容:
{
backup as copy reuse
file '/data/oracle/product/11.1/database/dbs/orapwrac11g2' auxiliary format
'/data/oracle/product/11.1/database/dbs/orapwrac11g1' file
'/dev/vx/rdsk/datavg/rac11g_spfile' auxiliary format
'+DATA/rac11g/spfilerac11g.ora' ;
sql clone "alter system set spfile= ''+DATA/rac11g/spfilerac11g.ora''";
}
正在执行内存脚本
启动backup于09-9月-08
分配的通道: ORA_DISK_1
通道ORA_DISK_1: SID=484实例=rac11g2设备类型=DISK
DBGANY: Mismatched message length! [16:06:39.742] (krmiduem)
DBGANY: Mismatched message length! [16:06:39.744] (krmiduem)
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00601: fatal error in recovery manager
RMAN-03004:执行命令期间出现严重错误
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-03009: backup命令(ORA_DISK_1通道上,在09/09/2008 16:06:39上)失败
ORA-17629:无法连接到远程数据库服务器
ORA-17627: ORA-12154: TNS:无法解析指定的连接标识符
ORA-17629:无法连接到远程数据库服务器
这个错误是由于配置源数据库时没有使用VIP地址,而指定了一个实例的PUBLIC地址,这里应该使用VIP,确保RMAN可以同时连接到两个实例上:
bash-3.00$ rman target sys/test@rac11gauxiliary sys/test@rac11g1_s
Recovery Manager:> Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: RAC11G(DBID=1712482917)
connected to auxiliary database: RAC11G(not mounted)
RMAN> duplicate target database for standby
2> db_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
3> dorecover
4> from active database
5> spfile
6> parameter_value_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
7> set log_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
8> set fal_client='RAC11G_S'
9> set fal_server='RAC11G'
10> set log_archive_dest_1='LOCATION=+DATA/RAC11GVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rac11g_s'
11> set log_archive_dest_2='SERVICE=rac11gLGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=rac11g'
12> set standby_archive_dest='+DATA/RAC11G'
13> set db_unique_name='rac11g_s'
;
14>
Starting Duplicate Db at 09-SEP-08
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=38 device type=DISK
contents of Memory Script.:
{
backup as copy reuse
file '/data/oracle/product/11.1/database/dbs/orapwrac11g2' auxiliary format
'/data/oracle/product/11.1/database/dbs/orapwrac11g1' file
'/dev/vx/rdsk/datavg/rac11g_spfile' auxiliary format
'+DATA/rac11g/spfilerac11g.ora' ;
sql clone "alter system set spfile= ''+DATA/rac11g/spfilerac11g.ora''";
}
executing Memory Script
Starting backup at 09-SEP-08
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=611 instance=rac11g1 device type=DISK
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 09/09/2008 16:11:41
ORA-17629: Cannot connect to the remote database server
ORA-17627: ORA-12154: TNS:could not resolve the connect> ORA-17629: Cannot connect to the remote database server
continuing other job steps, job failed will not be re-run
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 09/09/2008 16:11:41
RMAN-03015: error occurred in stored script. Memory Script
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 09/09/2008 16:11:41
ORA-17629: Cannot connect to the remote database server
ORA-17627: ORA-12154: TNS:could not resolve the connect> ORA-17629: Cannot connect to the remote database server
采用本地配置的LOAD_BALANCE服务名,仍然出现上面的错误,看来最好的方式还是通过ALLOCATE CHANNEL的方式手工分配CHANNEL:
bash-3.00$ rman target sys/test@rac11gauxiliary sys/test@rac11g1_s
Recovery Manager:> Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: RAC11G(DBID=1712482917)
connected to auxiliary database: RAC11G(not mounted)
RMAN> run
2> {
3> allocate channel c1 device type disk connect 'sys/test@rac11g1';
4> allocate channel c2 device type disk connect 'sys/test@rac11g2';
5> allocate auxiliary channel ac1 device type disk;
6> allocate auxiliary channel ac2 device type disk;
7> duplicate target database for standby
8> db_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
9> dorecover
10> from active database
11> spfile
12> parameter_value_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
13> set log_file_name_convert '/dev/vx/rdsk/datavg', '+DATA/RAC11G'
14> set fal_client='RAC11G_S'
15> set fal_server='RAC11G'
16> set log_archive_dest_1='LOCATION=+DATA/RAC11GVALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rac11g_s'
17> set log_archive_dest_2='SERVICE=rac11gLGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=rac11g'
18> set standby_archive_dest='+DATA/RAC11G'
19> set db_unique_name='rac11g_s';
20> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=285 instance=rac11g1 device type=DISK
allocated channel: c2
channel c2: SID=119 instance=rac11g2 device type=DISK
allocated channel: ac1
channel ac1: SID=39 device type=DISK
allocated channel: ac2
channel ac2: SID=36 device type=DISK
Starting Duplicate Db at 09-SEP-08
contents of Memory Script.:
{
backup as copy reuse
file '/data/oracle/product/11.1/database/dbs/orapwrac11g2' auxiliary format
'/data/oracle/product/11.1/database/dbs/orapwrac11g1' file
'/dev/vx/rdsk/datavg/rac11g_spfile' auxiliary format
'+DATA/rac11g/spfilerac11g.ora' ;
sql clone "alter system set spfile= ''+DATA/rac11g/spfilerac11g.ora''";
}
executing Memory Script
Starting backup at 09-SEP-08
RMAN-03009: failure of backup command on c1 channel at 09/09/2008 16:18:44
ORA-17629: Cannot connect to the remote database server
ORA-17627: ORA-12154: TNS:could not resolve the connect> ORA-17629: Cannot connect to the remote database server
continuing other job steps, job failed will not be re-run
released channel: c1
released channel: c2
released channel: ac1
released channel: ac2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 09/09/2008 16:18:44
RMAN-03015: error occurred in stored script. Memory Script
RMAN-03009: failure of backup command on c2 channel at 09/09/2008 16:18:44
ORA-17629: Cannot connect to the remote database server
ORA-17627: ORA-12154: TNS:could not resolve the connect> ORA-17629: Cannot connect to the remote database server
RMAN> exit
Recovery Manager complete.
这个错误是由于远端配置的tnsnames.ora中存在问题,尝试在源数据库连接目标数据库环境也报错ORA-12154,增加RAC11G1_S服务名后,问题解决:
RAC11G1_S =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.0.2.62)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = rac11g1)
)
)
由于错误太多,只能在下一篇文章中继续描述。
oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html