监听独立于数据库服务器的配置,解决ORA-12520及ORA-12545错误
一、环境:
1、linux主机ocm(192.168.217.130)作为数据库
sys@OCM> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
2、linux主机ocp(192.168.217.133)作为独立远程监听
sys@OCP> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
3、windows主机(192.168.217.2)作为客户端
windows 7
二、在ocm主机(192.168.217.130)上操作:
1、配tnsnames.ora
LISTENER_OCP =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.217.133)(PORT = 1521))
)
2、配参数
sys@OCM> alter system set remote_listener=LISTENER_OCP;
3、查监听
[oracle@ocm ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 29-MAY-2013 21:13:28
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 29-MAY-2013 20:34:42
Uptime 0 days 0 hr. 38 min. 47 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/ocm/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm.example.com)(PORT=1521)))
Services Summary...
Service "ocm" has 1 instance(s).
Instance "ocm", status READY, has 1 handler(s) for this service...
Service "ocmXDB" has 1 instance(s).
Instance "ocm", status READY, has 1 handler(s) for this service...
The command completed successfully
三、在ocp主机(192.168.217.133)上操作:
1、查监听
[oracle@ocp ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 29-MAY-2013 20:49:22
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 29-MAY-2013 20:44:12
Uptime 0 days 0 hr. 5 min. 10 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/ocp/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocp)(PORT=1521)))
Services Summary...
Service "ocm" has 1 instance(s).
Instance "ocm", status READY, has 1 handler(s) for this service...
Service "ocmXDB" has 1 instance(s).
Instance "ocm", status READY, has 1 handler(s) for this service...
Service "ocp" has 1 instance(s).
Instance "ocp", status READY, has 1 handler(s) for this service...
The command completed successfully
2、配tnsnames.ora
remote_130 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.217.133)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ocm)
)
)
3.连接测试
[oracle@ocm admin]$ sqlplus hr/hr@remote_130
SQL*Plus: Release 11.2.0.3.0 Production on Wed May 29 23:07:19 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-12520: TNS:listener could not find available handler for requested type of
server
Enter user-name:
4、解决方法:(192.168.217.133)主机上一定要配一下
vi /etc/hosts
192.168.217.130 ocm
192.168.217.133 ocp
四、从windows客户端连接
remote_130 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.217.133)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ocm)
)
)
C:\Users\Administrator>sqlplus hr/hr@remote_130
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 5月 29 21:02:34 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12545: 因目标主机或对象不存在, 连接失败
请输入用户名:
解决方法在C:\Windows\System32\drivers\etc
编辑hosts添加如下:
192.168.217.130 ocm
192.168.217.133 ocp
五、最后总结配置的整过程和解决:
1、配tnsnames.ora
LISTENER_OCP =