合 Oracle RAC中remote_listener和local_listener的作用是什么?
Tags: Oraclerac监听remote_listener修改端口号listener.oralocal_listenerSCAN IP
简介
REMOTE_LISTENER参数主要用于RAC环境中监听器的远程注册,监听器的远程注册主要用于实现负载均衡。通常情况下,客户端发出的连接请求会首先被LOCAL_LISTENER接收,然后由Master Instance来决定当前的连接请求应该由哪个目标Instance发出Server Process响应这个连接请求。在启用了负载均衡的情形下,Master Instance会将请求转发到负载较小的实例。如果此时Remote_Listener中指定的实例负载较小,那么当前的请求会被重定向到负载较小的Instance中来建立连接,派生服务器进程进行相应连接。
在RAC环境下不管是使用了默认的TCP和1521还是其他协议都建议配置LOCAL_LISTENER。REMOTE_LISTENER参数在RAC环境下非常重要,是服务器实现负载均衡的一个工具。在服务器端的连接中,Oracle NET通过remote_listener确定当前RAC中的远程监听和实例,以便分发连接。
RAC环境中的监听器可以分为本地监听器和SCAN监听器,分别对应LOCAL_LISTENER和REMOTE_LISTENER参数:
LOCAL LISTENER:本地监听器只能监听到运行在本节点上的数据库。RAC的每个节点上都会有独立的本地监听器,它会监听该节点的Public IP和VIP,而每个节点的实例在启动的时候也会向本地监听器进行注册,当然它也会向SCAN监听器注册,当VIP或者Public IP有连接请求的时候,本地监听器就接受处理并和本地实例建立连接。如果某个节点故障,那么其上面的VIP会进行漂移,但本地监听器并不会产生漂移。
本地监听器对应的设置参数为LOCAL_LISTENER。这个参数控制着本地监听器的注册,因为本地监听器的工作机制关系,通过本地监听器的数据库连接请求只会连接到本地节点的实例上。