ITPub博客

首页 > IT基础架构 > 数据安全 > LOAD_BALANCE&TAF总结

LOAD_BALANCE&TAF总结

原创 数据安全 作者:yingyifeng306 时间:2021-02-20 16:41:54 0 删除 编辑

 

一 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 操作是不会中断的。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23732248/viewspace-2757979/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: ORA-4031解决思路
请登录后发表评论 登录
全部评论
ITpub论坛高可用版主,擅长研究Oracle 内部原理、新特性、高可用和性能调优等,多年来一直保持着对新事务旺盛的求知欲。热切关注 Oracle 和其它相关技术

注册时间:2011-10-12

  • 博文量
    291
  • 访问量
    1593028