• 售前

  • 售后

热门帖子
入门百科

[Oracle] RAC 之 - 负载平衡深入分析

[复制链接]
sun81ABC 显示全部楼层 发表于 2021-10-26 13:32:38 |阅读模式 打印 上一主题 下一主题
Oracle RAC提供两种方式实现负载均衡,第一种是纯技能手段,即在用户毗连时,根据体系当前的负载情况决定由哪个节点处置惩罚用户请求;第二种是面向业务,人为的把应用切分成许多service,通过某个service过来的毗连请求都由某个节点处置惩罚。下面来详细看看这两种手段:
纯技能手段 (面向毗连的负载均衡)
1. 客户端负载均衡
设置方法是在客户端tnsnames.ora文件中设置LOAD_BALANCE=YES,当客户端发起毗连时,会从所在列表中随机选取一个,把毗连请求随机分散给各个实例。
这个技能的最大缺点在于不能根据各个实例的真实负载情况来分散请求,太过粗糙,因此很少使用。
2. 服务器端负载均衡
服务器端负载均衡依靠于Listener收集的负载信息,在数据库运行过程中,pmon历程会收集体系的负载信息,定期更新至Listener中。如果你设置了Remote_listener参数,pmon历程不但能把负载信息注册到当地Listener,也可以注册到别的实例的Listener。如许有了pmon自动注册机制后,集群的每个节点的Listener都掌握了全部节点的负载信息,当收到客户端请求时,会把毗连分配给负载最小的实例。
面向业务手段 (使用Service负载均衡)
上面介绍了纯技能手段举行的负载均衡,看起来很优美,但在实际使用中,可能会带来非常大的性能问题。大家都知道,RAC由于其share-disk的架构,它的性能很大水平上依靠于内存融合(Cache Fusion),纯技能手段无法知道业务的详细情况,因此它可能把同一个业务的毗连分散到各个实例中,导致大量的内存融合,性能急剧降落。

如果我们换一种思绪,把同一种应用步伐的毗连分到同一个实例上,好比A应用步伐的毗连都连在A实例,B应用步伐的毗连都连在B实例上,如许就可以或许有效地淘汰内存融合。
对应用的划分可以通过service实现,这必要DBA和开放职员互助,在相识业务特点的情况下设置service

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作