Oracle LOAD_BALANCE&TAF总结

来源:这里教程网 时间:2026-03-03 18:02:17 作者:

load_balance 负载均衡

1.1 客户端方式 loadbalance :一个 listener 指向一个 Instance ,客户端 tns 指定多个的 listener ,用过客户端轮训使用其中的 listener 实现 loadbalance

通过配置 tnsnames.ora 中的配置,如下:

SERVICEA =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)(SERVICE_NAME = TESTRAC)(INSTANCE_NAME = TESTRAC1)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = TESTRAC)

(INSTANCE_NAME = TESTRAC2)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

 

(LOAD_BALANCE = yes))

1.2 服务器端 : 一个 listener 指向多个 Instance ,客户端 tns 指定特定的 listener ,通过服务器端的 listener 的分发实现 loadbalance

remote_listener  设置了以后,根据 cpu 的使用频率进行负载均衡。

 

TAF 处理 failover

2.1 客户端配置

   

SERVICEA =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.224)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)(SERVICE_NAME = TESTRAC)(INSTANCE_NAME = TESTRAC1)

(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.225)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = TESTRAC)

(INSTANCE_NAME = TESTRAC2)

(FAILOVER_MODE =

(TYPE = SELECT)

(METHOD = BASIC)

(BACKUP = SERVICEA_BACKUP))))

2.2 服务器端:

通过配置 service_name instance 之间的访问原则来实现。

过程描述:      当客户端发出连接请求给 server listener 的时候,通过 local_listener 注册的服务接收这个连接请求,然后由 master instance 来决定这个连接请求应该由哪个目标 instance 发出 server process 响应这个连接请求。如果启用负载均衡,那么主节点会选择 cpu 负载最小的那个 instance ,此时    如果 master 分配的目标 instance local listener machine ,那么直接通过 local server listener ,开启后台的 server process ,处理发出 conn 的客户端,建立连接,处理会话 ;        如果 master 分配的目标 instance 不是 local listener machine ,那么会通过 remote_listener 这个参数,把连接请求转移到 remote machine 上的 listener, 然后由 remote service listener 发出一个 server process 返回客户端,建立连接,处理会话 .       conn 建立连接以后, listener 就没有用了,不会再用到了,如果这个时候,已经连接的那个 instance down 了,会重新由新分配的 master instance 通过 remote_listener 切换到可用 instance ,此时客户不会发现连接中断。 conn select 操作是不会中断的。  

相关推荐