Oracle 双监听器的配置
以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 waterLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-DEC-2012 21:47:22Copyright (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 LISTENERVersion TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionStart Date 10-DEC-2012 20:02:23Uptime 0 days 1 hr. 44 min. 58 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.logListening 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 waterLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 10-DEC-2012 21:48:45Copyright (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 waterVersion TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionStart Date 10-DEC-2012 21:24:17Uptime 0 days 0 hr. 24 min. 28 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/water.logListening 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 waterTNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 10-DEC-2012 21:53:13Copyright (c) 1997, 2005, Oracle. All rights reserved.Used parameter files:Used TNSNAMES adapter to resolve the aliasAttempting 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@waterConnected.