[zt] RAC的负载均衡

RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。
客户端的负载均衡配置相对简单,只需要在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的引入,这样的情况可以得到很大程度的改善。客户端的负载均衡在通常情况下能够较好地工作,但是由于连接是在客户端随机发起的,这样客户端并不知道RAC各节点的负荷及连接数情况,有可能负荷大的节点还会源源不断地增加新的连接,导致RAC节点无法均衡工作。
从Oracle 10g开始,服务器端的负载均衡可以根据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))
)

ALTER SYSTEM SET REMOTE_LISTENER = LISTENERS_RAC;

这样服务器端的LOAD BALANCE便配置完成。
但是有时候由于PMON取节点负荷的延迟,导致客户端连接可能还是会连接到负荷较大的节点上,这时候便可以在服务器各节点的listener.ora里面加入PREFER_LEAST_LOADED_NODE=OFF这么一行,这样服务器端的负载均衡将不再根据节点的负荷来进行分配,而是根据节点的连接数进行分配,达到各个节点连接数比较平衡的效果。
另外一个不得不说的便是并行操作,假如有个会话连接以后要进行并行操作。由于连接时是按负荷或连接数连接,这样可能连接时各个节点连接数和负荷等比较平衡,但是这个并行会话启动多个并行进程以后,那么这个节点的负荷及连接数就会有可能上升得比较快。如果在RAC中开启了节点并行,那么有可能会把并行进程分配到多个节点运行以达到负载均衡的效果。
从Oracle 10.2开始,Oracle引入了Load Balance Advisor,对负载均衡有了进一步的改进。结合Service,可以对不同的SERVICE设置不同的负载均衡策略。Load Balance Advisor的配置可以通过DBMS_SERVICE包对SERVICE进行更改而完成。在Load Balance Advisor首先必须设置SERVICE负载均衡的目标,目标分为3种:

GOAL_NONE Disables the load balancing advisory
GOAL_SERVICE_TIME The LBA calculates a weighted moving average of the total elapsed time for completed work plus the bandwidth that’s available to the service to calculate the service goodness. This goal is ideal for services whose workload may change dramatically over a short period of time, e.g. an application that services a “clicks and mortar” store that provides customer self-service through an internet-based shopping web site.
GOAL_THROUGHPUT The LBA calculates a weighted moving average of throughput (i.e. the rate at which work is completed) in addition to the bandwidth available to the service to calculate the service goodness. This goal is best suited for long-duration tasks that are typically queued to run serially, e.g. scheduled jobs that handle large batches of transactions.

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

CLB_GOAL_SHORT The Load Balancing Advisory will be used for connection load balancing only if it is enabled (i.e. set to other than GOAL_NONE). If the LBA has been disabled, connection load balancing will utilize abridged advice determined by CPU utilization.
CLB_GOAL_LONG Connection load balancing will be determined by first tallying the total number of connections per instance, and then by counting the number of sessions per each service. Oracle recommends using this setting for services whose applications tend to connect for long periods of time (e.g. Oracle Forms). The Load Balancing Advisory can be used in conjunction with this setting as long as the connection pool has been sized to accommodate “gravitation “ within the pool without adding or subtracting connections. Oracle recommends this option as the most efficient design.

<!--

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

转载于:http://blog.itpub.net/35489/viewspace-604544/

Oracle Rac Scan 负载均衡问题 Oracle Rac Scan 负载均衡问题问题描述问题复现现象观察现象分析解决方法再次验证 问题描述 客户生产环境上出现问题如下: 应用程序配置了load_balance负载均衡; Oracle Rac集群上所有的会话都负载到了节点上1上,而节点2基本无会话连接 问题复现 # 1. 服务器上的监听配置如下 [grid@rac1 ~]$ cd $ORACLE_HOME/network/admin [grid@rac1 admin]$ cat listener.ora LISTENER=(DESCRIPT 阅读详情

相关推荐

RAC负载均衡命令展示:优化网络性能

根据应用程序的需要,选择适合的TAF类型。这个命令可以查看每个实例(instance)上的会话(session)数量,以确定负载是否均衡。常见的负载均衡方式包括基于连接数的负载均衡、基于响应时间的负载均衡等。通过了解和使用这些命令,您可以有效地管理和优化RAC集群的负载均衡,提升数据库性能和可扩展性。这个命令可以查看当前连接的实例信息,包括实例ID、会话ID和序列号。通过检查当前连接的实例信息,可以确定连接是否均衡分布在不同的实例上。这个命令可以查看数据库服务的配置信息,包括负载均衡策略、目标和状态。

YOLOv111的博客 193

网上搜集的一些关于oraclerac负载均衡的资料[转帖]

虽然在Oracle的立场上,总是建议客户能够更好地规划自己的应用,在有其它负载平衡方法的时候,尽量不要依赖于Oracle的Load Balance方法,但是往往在给客户配置完Oracle RAC数据库以后,客户都会要求要测试负载...

csdn6538954的博客 157

默认情况下RAC是按照SESSION数来负载均衡的 ?

Oracle 10.2.0.4 Linux AS 5.3 SPFILE中配置了LOCAL_LISTENER 及REMOTE_LISTENER . 配置3节点RAC ,按照文档标准配置, 发现两边的session数大概是平均 ...

cuixie2370的博客 181

ORACLE RAC均衡负载

oracle集群数据库有些时候并没有实现自动负载均衡,基本所有业务都在某一个节点上,所以容易造成某一个节点宕机的情况,针对这种情况我们就需要手动为期配置负载均衡。针对负载均衡配置有在服务器端和客户端两种入手方法(但是我发现主要还是服务器端配置效果更明显)一、服务器端配置 1、首先要在每个节点服务器上tnsnames.ora文件进行如下,注意看红色部分...

weixin_33815613的博客 581

[zt Oracle RAC 负载均衡 --Oracle OpenWorld2007

RAC环境配置好以后,在server上生成的tnsnames.ora里面,负载均衡默认是开启的。一直对RAC负载均衡不大明白。比如,RAC本身的负载均衡的依据是什么,是基于连接数,还是基于server的cp...

cuixie2370的博客 205

oracle rac loadbalance,[zt] Oracle RAC Load Balance [final]

虽然在Oracle的立场上,总是建议客户能够更好地规划自己的应用,在有其它负载平衡方法的时候,尽量不要依赖于Oracle的Load Balance方法,但是往往在给客户配置完Oracle RAC数据库以后,客户都会要求要测试负载平衡(Load Balance)和TAF(Transparent Application Failover),并且将这两个测试作为RAC是否安装成功的标准。这是一件很无奈的...

weixin_35355560的博客 296

jboss oracle rac (zt)

1.在WEBLOGIC上配置了一个多池,利用WEBLOGIC提供的负载均衡策略,将并发均衡的分别到两个节点上。详细配置在如下参考资料或附件中。 参考资料:http://www.oracle.com/technology/pr...

ciyinzhi8788的博客 93

Oracle RAC TAF [zt]

Oracle的RAC的高可用功能除了负载均衡还包括TAF(Transparent Application Failover)。RAC的TAF是指会话连接到一个实例上,如果这个实例出现了故障,Oracle会自动将会话迁移到另一个实...

cuihu5034的博客 259

weblogic rac10g ha配置 (zt)

1.在WEBLOGIC上配置了一个多池,利用WEBLOGIC提供的负载均衡策略,将并发均衡的分别到两个节点上。详细配置在如下参考资料或附件中。 参考资料:http://www.oracle.com/technology/pr...

ciyinzhi8788的博客 137

温习一下Oracle中常说的HA、RAC、Datagurad的区别 zt

A是High Availability 的首字母组合,翻译过来,可以叫做高可用,或高可用性,高可用(环境)。我觉得应该说HA是一个观念而不是一项或一系列具体技术,就象网格一样。作过系统方案就知道了,评价系统的性能当中就有一项高可...

cuixiejiao6874的博客 188

RedHat Advance Server上安装Oracle 9204 RAC参考手册(zt)

前言定位本文定位在那些有了一定Linux与oracle基础的,而且对RAC也要有相关了解热人员作为参考手册,而不是所谓的安装向导。所以本文没有详细的安装过程之类的步骤,却有详细的安装错误的解决办法。覆盖范围适合在Redhet A...

cuixie2370的博客 156

RAC的TAF简单测试

ZT: http://yangtingkun.itpub.net/测试一Oracle的RAC的高可用功能除了负载均衡还包括TAF(Transparent Application Failover)。RAC的TAF是指会话连接到一...

cilan8565的博客 276

Webspere配置Oracle RAC 数据源的问题 (ZT)

Webspere配置Oracle RAC集群数据源的问题Webspere配置Oracle RAC集群数据源,Oracle双机的IP为10.10.10.121与10.10.10.122 ,实例名分别为orcl1与orcl2,服务名...

ciyinzhi8788的博客 139

车闸马达启动电容故障定位:从现象到换件一次讲透

单相异步电机是众多汽车执行机构的核心动力源,而启动电容则是单相电机能否正常启动的关键元件。启动电容一旦失容,电机便会表现出启动无力、嗡嗡响却不转、带载能力下降等典型故障,这些现象与机械卡死、控制器损坏高度相似,导致维修时极易误判。电容失效多由电解液干涸、介质老化或长期过热引起,且外观未必有明显异常。掌握系统的电容故障定位方法,利用万用表电容档量化测量容量,并结合外观检查与同规格代换验证,可以在十分钟内锁定故障源头。这一方法广泛应用于电子手刹执行器、电动尾门、电动叉车制动推杆等车闸马达场景,能有效避免盲目拆解

cuixie2370的博客 475

PMON向监听注册实例的行为(ZT)

PMON向监听注册实例的行为(ZT)PMON向监听注册实例的行为:在缺省情况下(也就是没有LOCAL_LISTENER参数配置的情况下),PMON会根据主机名(hostname),查找其IP地址,通常是在/etc/hosts中找对应的条目,如果没有找到hostname的IP地址,则PMON不会注册,同时,必须是本机的IP地址,PMON才能注册。比如在/etc/hosts中将

999

Oracle各版本区别(zt)

Oracle EE(企业版, Enterprise Edition), SE(标准版, Standard Edition), SE1(标准版1, Standard Edition One) 区别是什么? 1. SE1针对部门和小...

cso13072的博客 344

DB设计[zt](再完善)

redo设计 • redo是对Oracle性能影响最大的组件 • REDO对IO的影响巨大 • 注意REDO文件存放的位置 • 注意REDO文件的大小(日志切换时间) • LOG...

cuanzhanyun3524的博客 96

理解Oracle9i中的监听动态注册(zt)

在Oracle9i中,使用命令lsnrctl status可以看到如下例子: Service "lrdb" has 2 instance(s). Instance "lrdb", status UNKNOWN, has 1 ha...

cuixie2370的博客 117
上一篇: SQL Server 聚集索引和非聚集索引的区别
下一篇: ARCHIVE_LAG_TARGET手动设置归档间隔时间,强制日志切换
cuixie2370
博客等级 码龄9年 16粉丝 672原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值