1.使用图形化工具netmgr建立local监听(LISTENER_RAC1/LISTENER_RAC2),将监听的描述符粘贴到listener中
2.修改local listener
alter system set local_listener='(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.28.101)(PORT = 1522)))' sid='racdb1';
alter system set local_listener='(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.28.102)(PORT = 1522)))' sid='racdb2';
3.启动本地监听
LSNRCTL> start LISTENER_RAC1
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/Rac1/listener_rac1/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.28.101)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.28.101)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER_RAC1
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 16-OCT-2015 11:19:55
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/Rac1/listener_rac1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.28.101)(PORT=1522)))
The listener supports no services
The command completed successfully
LSNRCTL> status LISTENER_RAC1
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.28.101)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER_RAC1
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 16-OCT-2015 11:19:55
Uptime 0 days 0 hr. 1 min. 14 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/Rac1/listener_rac1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.28.101)(PORT=1522)))
Services Summary...
Service "racdb" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Service "racdbXDB" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Service "taf_service" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
The command completed successfully
4.修改
远程监听参数
remote listener
alter system set remote_listener='racscan:1522';
5.修改远程监听端口scan端口
srvctl modify scan_listener -p 1522
[grid@Rac1 ~]$ srvctl modify scan_listener -p 1522
[grid@Rac1 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1522
[grid@Rac1 ~]$ srvctl stop scan_listener
[grid@Rac1 ~]$ srvctl start scan_listener
6.重启远程监听
7.客户端连接描述符
RACDB_TAF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = racscan)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = taf_service)
)
)
8.结论
本地的监听需要手工通过lsnrctl命令管理,重启
远程的监听变成了集群的资源使用srvctl命令管理,重启
远程监听-本地监听-service结构(scan listener 也就是remote listener,而service存在于数据库实例上)
9.问题
如果3节点RAC,service 在3个节点上,但远程监听只在rac1,rac2上,那么第三个节点是否参与负载均衡?是否参与故障转移?
1.使用图形化工具netmgr建立local监听(LISTENER_RAC1/LISTENER_RAC2),将监听的描述符粘贴到listener中
2.修改local listener
alter system set local_listener='(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.28.101)(PORT = 1522)))' sid='racdb1';
alter system set local_listener='(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.28.102)(PORT = 1522)))' sid='racdb2';
3.启动本地监听
LSNRCTL> start LISTENER_RAC1
Starting /u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/Rac1/listener_rac1/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.28.101)(PORT=1522)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.28.101)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER_RAC1
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 16-OCT-2015 11:19:55
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/Rac1/listener_rac1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.28.101)(PORT=1522)))
The listener supports no services
The command completed successfully
LSNRCTL> status LISTENER_RAC1
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.28.101)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER_RAC1
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 16-OCT-2015 11:19:55
Uptime 0 days 0 hr. 1 min. 14 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/Rac1/listener_rac1/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.28.101)(PORT=1522)))
Services Summary...
Service "racdb" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Service "racdbXDB" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
Service "taf_service" has 1 instance(s).
Instance "racdb1", status READY, has 1 handler(s) for this service...
The command completed successfully
4.修改
远程监听参数
remote listener
alter system set remote_listener='racscan:1522';
5.修改远程监听端口scan端口
srvctl modify scan_listener -p 1522
[grid@Rac1 ~]$ srvctl modify scan_listener -p 1522
[grid@Rac1 ~]$ srvctl config scan_listener
SCAN Listener LISTENER_SCAN1 exists. Port: TCP:1522
[grid@Rac1 ~]$ srvctl stop scan_listener
[grid@Rac1 ~]$ srvctl start scan_listener
6.重启远程监听
7.客户端连接描述符
RACDB_TAF =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = racscan)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = taf_service)
)
)
8.结论
本地的监听需要手工通过lsnrctl命令管理,重启
远程的监听变成了集群的资源使用srvctl命令管理,重启
远程监听-本地监听-service结构(scan listener 也就是remote listener,而service存在于数据库实例上)
9.问题
如果3节点RAC,service 在3个节点上,但远程监听只在rac1,rac2上,那么第三个节点是否参与负载均衡?是否参与故障转移?