刚刚在进行RAC环境的DUPLICATE DATABASE的时候,就碰到了很多问题,由于二者命令比较相似,本来认为这次不会碰到太多的问题,没有想到的是,这次碰到的问题居然比DUPLICATE碰到的问题多出一倍。而且基本上所有碰到的问题都是DUPLICATE操作时不曾遇到的。
最开始为了减少麻烦,打算采用SPFILE的方式,并且利用FROM ACTIVE DATABASE,这样可以不用读取备份集:
bash-3.00$ rman target sys/test@172.0.2.54/rac11g.us.oracle.com auxiliary /
恢复管理器: Release 11.1.0.6.0 - Production on星期二9月9 14:58:19 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: RAC11G(DBID=1712482917)
已连接到辅助数据库: RAC11G(未装载)
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=112设备类型=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: Duplicate Db命令(在09/09/2008 14:58:26上)失败
RMAN-06217:未使用Net服务名连接到辅助数据库
这个RMAN-6217错误居然在metalink上都找不到,不过好在错误的描述比较清晰,只需要通过连接服务名的方式连接辅助实例即可。
继续尝试:
bash-3.00$ rman target sys/test@172.0.2.54/rac11g.us.oracle.com auxiliary sys/test@rac11g1
恢复管理器: Release 11.1.0.6.0 - Production on星期二9月9 15:16:52 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: RAC11G(DBID=1712482917)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554:内部恢复管理器程序包初始化失败
RMAN-04006:来自辅助数据库的错误: ORA-12514: TNS:监听程序当前无法识别连接描述符中请求的服务
不过这里引发一个问题,由于10g以上默认采用动态注册,由于数据库没有启动,因此动态注册无法启用,没有办法通过服务名连接,只能手工编辑一个SID列表,添加到listener.ora文件中:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = rac11g1)
(ORACLE_HOME = /data/oracle/product/11.1/database)
)
)
下面重启监听:
$ lsnrctl stop
LSNRCTL for Solaris: Version 11.1.0.6.0 - Production on 09-9月-2008 15:20:43
Copyright (c) 1991, 2007, Oracle. All rights reserved.
正在连接到(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
命令执行成功
$ lsnrctl start
LSNRCTL for Solaris: Version 11.1.0.6.0 - Production on 09-9月-2008 15:20:55
Copyright (c) 1991, 2007, Oracle. All rights reserved.
启动/data/oracle/product/11.1/database/bin/tnslsnr:请稍候...
TNSLSNR for Solaris: Version 11.1.0.6.0 - Production
系统参数文件为/data/oracle/product/11.1/database/network/admin/listener.ora
写入/data/oracle/diag/tnslsnr/ser1/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ser1)(PORT=1521)))
正在连接到(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/