以Oracle Net看,数据库服务器可能也是客户端
因为tnsnames.ora可以有服务器的描述
也就是,只有监听器才会一直是服务器
实例:监听=n:m
㈠ 双监听器的好处:
① 客户端故障转移--CF
② 客户端负载均衡--CLB
㈡ 注意事项:
① 要保证1521端口可用,否则,OEM将不可用,须emca重配
② 非标端口使用静态注册是个比较好的实践
配置案例:
[oracle@localhost admin]$ cat listener.ora
think =
(DESCRIPTION =
(load_balance = on)
(failover = on)
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.1.113)(PORT= 1521)
(ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.1.113)(PORT= 1522)
)
)
)
SID_LIST_think =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = emrep.us.oracle.com)
(SID_NAME = emrep)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)))
water =
(DESCRIPTION =
(load_balance = on)
(failover = on)
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.1.113)(PORT= 1521))
(ADDRESS=(PROTOCOL = tcp)(HOST= 192.168.1.113)(PORT= 1522))
)
)
)
SID_LIST_water =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = emrep.us.oracle.com)
(SID_NAME = emrep)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)))
[oracle@localhost admin]$ lsnrctl status water
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-DEC-2012 21:47:22
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(load_balance=on)(failover=on)(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.113)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 10-DEC-2012 20:02:23
Uptime 0 days 1 hr. 44 min. 58 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
Services Summary...
Service "emrep.us.oracle.com" has 1 instance(s).
Instance "emrep", status READY, has 1 handler(s) for this service...
Service "emrep_XPT.us.oracle.com" has 1 instance(s).
Instance "emrep", status READY, has 1 handler(s) for this service...
The command completed successfully
如果1521和1522并存,在业务不繁忙时,listener进程只会使用1521
[oracle@localhost admin]$ lsnrctl status water
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-DEC-2012 21:48:45
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(load_balance=on)(failover=on)(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.113)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias water
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 10-DEC-2012 21:24:17
Uptime 0 days 0 hr. 24 min. 28 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/water.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.113)(PORT=1522)))
Services Summary...
Service "emrep.us.oracle.com" has 1 instance(s).
Instance "emrep", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
㈢ 测试
① tnsping
[oracle@localhost admin]$ tnsping water
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 10-DEC-2012 21:53:13
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS=(PROTOCOL= tcp)(HOST= 192.168.1.113)(PORT= 1522)) (CONNECT_DATA=(SERVICE_NAME= emrep.us.oracle.com)))
OK (10 msec)
② netstat
[oracle@localhost admin]$ netstat -lntp| grep :15
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:1521 0.0.0.0:* LISTEN 8524/tnslsnr
tcp 0 0 192.168.1.113:1522 0.0.0.0:* LISTEN 9826/tnslsnr
③ conn
sys@EMREP> conn u1/u1@water
Connected.