对于专业的数据处理存储的Oracle ARC而言,负载均衡的设置就更为重要了。那么如何对Oracle负载均衡进行配置呢?就让我们一起看看本文来学习一下吧。我们将从客户端和服务器端来进行解说。

Oracle负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在Oracle负载均衡中分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。

客户端的Oracle负载均衡配置相对简单,只需要在tnsnames.ora中添加LOAD_BALANCE=ON这么一个选项即可。比如下面的TNS:

RAC =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

(LOAD_BALANCE =ON)

(FAILOVER =ON)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = rac)

)

)

这样当客户端连接RAC数据库时,会随机在TNS里面挑个监听地址进行连接。在Oracle10g以前,假如有节点宕机或者类似事故时,客户端可能还是选择连接到这个节点,这样会发生较长时间的TCP等待超时。而在10g以后,由于VIP和FAN的引入,这样的情况可以得到很大程度的改善。客户端的Oracle负载均衡在通常情况下能够较好地工作,但是由于连接是在客户端随机发起的,这样客户端并不知道RAC各节点的负荷及连接数情况,有可能负荷大的节点还会源源不断地增加新的连接,导致RAC节点无法均衡工作。

从Oracle 10g开始,服务器端的Oracle负载均衡可以根据RAC中各节点的负荷及连接数情况,而判定将新的客户端连接分配到负荷最小的节点上去。RAC中各节点的PMON进程每3秒会将各自节点的负荷(包括LOAD、***LOAD、CPU使用率)及连接数更新到service_register里面,然后假如节点的负荷有发生变化,将会通知到监听程序,由监听程序再决定新的客户端连接分配至哪个节点。假如RAC中一个节点的监听失败了,PMON每一分钟会去检查一次是否已经恢复正常。

服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目,然后再在初始化参数里面设置remote_listeners这个参数。比如:

LISTENERS_RAC =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))

)

ALTERSYSTEMSETREMOTE_LISTENER = LISTENERS_RAC;

这样服务器端的Oracle负载均衡便配置完成。

但是有时候由于PMON取节点负荷的延迟,导致客户端连接可能还是会连接到负荷较大的节点上,这时候便可以在服务器各节点的listener.ora里面加入PREFER_LEAST_LOADED_NODE=OFF这么一行,这样服务器端的Oracle负载均衡将不再根据节点的负荷来进行分配,而是根据节点的连接数进行分配,达到各个节点连接数比较平衡的效果。

另外一个不得不说的便是并行操作,假如有个会话连接以后要进行并行操作。由于连接时是按负荷或连接数连接,这样可能连接时各个节点连接数和负荷等比较平衡,但是这个并行会话启动多个并行进程以后,那么这个节点的负荷及连接数就会有可能上升得比较快。如果在RAC中开启了节点并行,那么有可能会把并行进程分配到多个节点运行以达到负载均衡的效果。

从Oracle 10.2开始,Oracle引入了Load Balance Advisor,对Oracle负载均衡有了进一步的改进。结合Service,可以对不同的SERVICE设置不同的Oracle负载均衡策略。Load Balance Advisor的配置可以通过DBMS_SERVICE包对SERVICE进行更改而完成。在Load Balance Advisor首先必须设置SERVICE负载均衡的目标,目标分为3种:

GOAL_NONE Disables theloadbalancing advisory

GOAL_SERVICE_TIME The LBA calculates a weighted moving averageofthe total elapsedtimeforcompletedworkplus the bandwidth that's availabletothe servicetocalculate the service goodness. This goalisidealforservices whose workload may change dramatically over a short periodoftime, e.g. an application that services a “clicksandmortar" store that provides customer self-service through an internet-based shopping web site.

GOAL_THROUGHPUT The LBA calculates a weighted moving averageofthroughput (i.e. the rateatwhichworkiscompleted)inadditiontothe bandwidth availabletothe servicetocalculate the service goodness. This goalisbest suitedforlong-duration tasks that are typically queuedtorun serially, e.g. scheduled jobs that handle large batchesoftransactions.

另外可以额外设置连接的负载均衡:

CLB_GOAL_SHORT TheLoadBalancing Advisory will be usedforconnectionloadbalancingonlyif itisenabled (i.e.settoother than GOAL_NONE). If the LBA has been disabled,connectionloadbalancing will utilize abridged advice determinedbyCPU utilization.

CLB_GOAL_LONGConnectionloadbalancing will be determinedbyfirsttallying the total numberofconnections per instance,andthenbycounting the numberofsessions per each service. Oracle recommends using this settingforservices whose applications tendtoconnectforlong periodsoftime(e.g. Oracle Forms). TheLoadBalancing Advisory can be usedinconjunctionwiththis settingaslongastheconnectionpool has been sizedtoaccommodate “gravitation “ within the pool without addingorsubtracting connections. Oracle recommends thisoptionasthe most efficient design.

【责任编辑:佟媛微 TEL:(010)68476606】

点赞 0

oracle负载均衡方案,Oracle负载均衡配置代码相关推荐

  1. oracle data guard方案,Oracle Data Guard 概念篇

    一个Data Guard 配置由一个生产库和一个或者多个standby数据库组成,在Data Guard配置中,主库和备库都既可以是rac环境,也可以是单机环境. 这篇文章主要介绍dataguard的 ...

  2. oracle 字符集修改方案,Oracle数据库字符集问题解决方案大全

    在国内外大中型数据库管理系统中,把ORACLE作为数据库管理平台的用户比 较多.ORACLE 不论是数据库管理能力还是安全性都是无可非议的,但是,它在汉 字信息的显示方面着实给中国用户带来不少麻烦,笔 ...

  3. 负载均衡设备oracle,Oracle RAC 服务器端联接负载均衡(Load Balance)

    Oracle RAC 服务器端连接负载均衡(Load Balance) Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于 ...

  4. SQL Server 负载均衡方案集锦

    随着业务量的提高,以及访问量和数据流量的快速增长,网络各个核心部分的处理性能和计算强度也相应增大,使得单一设备根本无法承担.在此情况下,如果扔掉现有设备去做大量的硬件升级,必将造成现有资源的浪费,而且 ...

  5. 数据库分类和负载均衡方案

    最近我在研究数据库方面的知识,包括数据库发展历史.分类.使用场景.大数据时代的数据库等等.网上收集了很多资料,整理出来,供感兴趣的同学参考. 一.数据库发展史和数据库分类 为啥我会把发展史和分类放在一 ...

  6. Discuz!NT负载均衡方案

    在前面的几篇文章中,主要谈到了在Discuz!NT中的跨站缓存数据,数据库负载均衡.但如果要实现将产品分布式布置到若干机器,组成集群来共同支撑起整个业务的话,还是有一定问题的(后面会有所介绍).下面先 ...

  7. 开源软件负载均衡方案比较

    Lvs.Nginx.Haproxy都可以用作多机负载的方案,它们各有优缺点,在生产环境中需要分析实际情况并加以利用.从性能和稳定上还是LVS最好,基本达到了F5硬件设备的60%性能. 一.lvs的优势 ...

  8. CDN基于谷歌开源Katran四层负载均衡方案的应用 - 原理篇

    CDN作为一种分布式缓存加速服务,对于访问量级大的区域,单个节点带宽建设一般可达百Gb量级,对外配置虚拟IP提供服务,节点内部需要通过多层负载均衡(LB)将请求分发到内部的若干台服务器进行处理.一般情 ...

  9. asp.net负载均衡方案[转]

    在前面的几篇文章中,主要谈到了在Discuz!NT中的跨站缓存数据,数据库负载均衡.但如果要实现将产品分布式布置到若干机器,组成集群来共同支撑起整个业务的话,还是有一定问题的(后面会有所介绍).下面先 ...

最新文章

  1. xBIM 实战01 在浏览器中加载IFC模型文件
  2. 贾扬清:我对人工智能方向的一点浅见
  3. 刀片服务器提升三要点
  4. Qt动态库静态库的创建、使用、多级库依赖、动态库改成静态库等详细说明
  5. 如何在代码中获取Java应用当前的版本号?
  6. 如何保存Tensorflow中的Tensor参数,保存训练中的中间参数,存储卷积层的数据
  7. sqlplus 登录数据库
  8. settimeout(fn(),0)
  9. mysql+服务+监控_mysql从服务器监控
  10. datatable 参数详细说明
  11. 录屏演示软件 ActivePresenter Pro v7.5.8 中文破解版
  12. 内容协商 Spring ContentNegotiation
  13. Excel两列数据怎么找不同
  14. 改变用户在某表空间的配额不足
  15. Wamp安装教程(Windows Apache Mysql PHP集成安装环境)
  16. django2.2 简单博客 一
  17. python中迭代_python中的迭代什么意思
  18. AI领域:如何做优秀研究并写高水平论文?
  19. 新手小白,做这几个短视频自媒体平台,有播放量就有收益
  20. 计算机教学质量提升,浅析中等专业学校计算机教学质量提升策略

热门文章

  1. 判断参数对象是否为DBNULL
  2. 世博、城市云和2020
  3. 班门弄斧?基于BCE的Lightningspin应用对比ChainBet
  4. Java进阶篇(一)——接口、继承与多态
  5. Mesos各种存储处理方式
  6. [9.28模拟] good
  7. 成本、质量、人力资源要点
  8. 几种常用编程语言的编程思想和方法 转
  9. 使用mii-tool设置网卡速率
  10. SAP Basis 日常管理