今天做RMAN搭建standby 数据库的时候报了一个错
2:RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;
Starting Duplicate Db at 12-JUN-15
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 06/12/2015 08:09:37
RMAN-05501: aborting duplication of target database
RMAN-06403: could not obtain a fully authorized session
RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
yStarting Duplicate Db at 12-JUN-15
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 06/12/2015 08:09:37
RMAN-05501: aborting duplication of target database
RMAN-06403: could not obtain a fully authorized session
RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory
在查了半个小时的时候才查出来问题,所以今天特意总结了这个问题。 为此我总结了“细节决定成败”
首先我们在使用rman duplicate复制standby数据库的时候,由于standby数据库实例必须处于非mount状态,所以主数据库直接连接是会报错的,需要在standby数据库服务上的监听器上配置静态的服务
如下:
vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ENMOEDU)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = ENMOEDU)
)
)
不配置、或者配置的ORACLE_HOME,和SID_NAME不正确都有可能导致出现此错误。请仔细检查ORACLE_HOME,ORACLE_SID环境变量设置设置,在listener.ora中是否配置正确了ORACLE_HOME,SID_NAME(与环境变量匹配)。
配置完成后需要重启监听器。
注意:我的错误来了
如果配置正确的话,使用RMAN连接应该看到如下内容:
[oracle@enmo1 dbs]$ rman target sys/oracle@ENMOEDU auxiliary sys/oracle@ORA11GR2
Recovery Manager: Release 11.2.0.3.0 - Production on Fri Jun 12 08:09:27 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ENMOEDU (DBID=141362048)
connected to auxiliary database (not started)
#not started,说明我们连接到一个空闲例程,这种情况通常就是静态服务名中ORACLE_HOME配置不正确,或者SID配置不正确导致的
因此我查询我的listener.ora
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=ORA11GR2)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/)
(SID_NAME=ORA11GR2)))
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=ORA11GR2)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/)
(SID_NAME=ORA11GR2)))
也许我不标出来 有的朋友看完以后也是觉得没有问题。删除 /
[oracle@enmo1 dbs]$ rman target sys/oracle@ENMOEDU auxiliary sys/oracle@ORA11GR2
Recovery Manager: Release 11.2.0.3.0 - Production on Fri Jun 12 08:09:27 2015[oracle@enmo1 dbs]$ rman target sys/oracle@ENMOEDU auxiliary sys/oracle@ORA11GR2
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: ENMOEDU (DBID=141362048)
connected to auxiliary database (not MOUNT)
#not mounted,表示已经连上启动实例的auxiliary数据库实例。问题解决