[Oracle] RAC 之 - 负载均衡深入解析
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
相关文章
PLSQL Developer连接Oracle11g 64位数据库配置详解(图文)
这篇文章主要介绍了PLSQL Developer连接Oracle11g 64位数据库配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-09-09PLSQL连接本地oracle或远程oracle数据库实现随意切换功能
这篇文章主要介绍了PLSQL连接本地oracle或远程oracle数据库实现随意切换功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-09-09PowerDesigner15.1连接oracle11g逆向生成ER图
这篇文章主要为大家详细介绍了PowerDesigner15.1连接oracle11g逆向生成ER图的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08一文教会你配置使用Navicat或PLSQL可视化工具远程连接Oracle
Navicat是一款数据库管理工具,是一个可多重连线资料库的管理工具,下面这篇文章主要给大家介绍了关于配置使用Navicat或PLSQL可视化工具远程连接Oracle的相关资料,需要的朋友可以参考下2023-04-04ORACLE 修改表结构 之ALTER CONSTAINTS的使用
这篇文章主要介绍了ORACLE 修改表结构 之ALTER CONSTAINTS的使用,需要的朋友可以参考下2014-07-07
最新评论