Oracle LOAD_BALANCE&TAF总结

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

load_balance  负载均衡

客户端方式  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))

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

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

 

TAF  处理  failover

客户端配置

   

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))))

服务器端:

通过配置  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  操作是不会中断的。

相关推荐