在使用RMAN创建STANDBY数据库的过程中,连接AUXILIARY的时候报错。
详细错误信息如下:
[oracle@yangtk ~]$ rman target / auxiliary sys/test@172.25.4.70/ora11g
Recovery Manager: Release 11.1.0.6.0 - Production on Wed Nov 7 01:45:35 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORA11G (DBID=4026820313)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections
查询了一下METALINK,发现这个问题从9i到11g,任何一个版本都可能会出现。造成这个问题的原因是,实例虽然启动,但是没有注册到监听。实例是通过PMON进程注册到监听上的,而PMON进程需要在MOUNT状态下才会启动。因此造成了上面的错误。
Oracle给出了两种解决方案,一种方法是对AUXILIARY数据库直接使用/,对TARGET数据库通过网络访问。
[oracle@yangtk2 ~]$ rman target sys/test@172.25.4.127/ORA11G_P.ytk-thinkpad auxiliary /
Recovery Manager: Release 11.1.0.6.0 - Production on Thu Nov 29 13:58:38 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORA11G (DBID=4026820313)
connected to auxiliary database: ORA11G (not mounted)
RMAN>
第二种方法为AUXILIARY数据库设置静态监听,在$ORACLE_HOME/network/admin目录下的listener.ora中添加下面的内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ora11g)
(ORACLE_HOME = /data/oracle/product/11.1)
)
)
重启监听:
[oracle@yangtk2 admin]$ lsnrctl stop
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 29-NOV-2007 14:01:55
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.4.70)(PORT=1521)))
The command completed successfully
[oracle@yangtk2 admin]$ lsnrctl start
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 29-NOV-2007 14:01:59
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /data/oracle/product/11.1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.1.0.6.0 - Production
System parameter file is /data/oracle/product/11.1/network/admin/listener.ora
Log messages written to /data/oracle/diag/tnslsnr/yangtk2/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.4.70)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.4.70)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Start Date 29-NOV-2007 14:01:59
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /data/oracle/product/11.1/network/admin/listener.ora
Listener Log File /data/oracle/diag/tnslsnr/yangtk2/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.25.4.70)(PORT=1521)))
Services Summary...
Service "ora11g" has 1 instance(s).
Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
在TARGET服务器上再次尝试登陆:
[oracle@yangtk ~]$ rman target / auxiliary sys/test@172.25.4.70/ora11g
Recovery Manager: Release 11.1.0.6.0 - Production on Wed Nov 7 02:21:55 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORA11G (DBID=4026820313)
connected to auxiliary database: ORA11G (not mounted)
关于这个问题的详细描述,可以参考metalink文档:Note:419440.1。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-69529/,如需转载,请注明出处,否则将追究法律责任。