Oracle RAC load blance
首先声明 本文基本是阅读 大话RAC 后的笔记。OK, 进入正题。
Oracle 10g RAC中采取两种方式提供负载均衡。第一种是connection blance。在用户连接的时候,根据随机算法把用户的连接定向到不同的节点。第二种是通过service,在应用层面上进行负载均衡。打个比方,一个ERP系统中包括多个模块,为多个部门服务。比如销售模块,人力资源管理模块。如果通过service进行负载均衡,我们可以定义一个 sales service代理销售模块,并且该service运行在节点1上,这样使用销售模块的人就会连接到节点1上。同理,定义一个HR service,代理人力资源模块,这样使用人力资源模块模块的人就会连接到节点2上。概况一下,第一种负载均衡是纯技术的负载均衡,第二种是面向业务的负载均衡。
connection blance这种负载均衡有两种实现方法,一种是在客户端实现,另一种是在服务器端实现。客户端实现非常简单,就是在tnsname.ora配置文件中的加上load_blance=yes这样的条目。但这种方法的缺点很明显。分配的时候并没有考虑两个节点的真实负载,所以分配结果不一定平衡,并且随机算法需要长时间片,如果短时间发起大量连接,就有可能都分配到同一个节点。更坏的结果是连接有可能被分配给故障节点。所以这种方式仅作了解,我们应该使用服务器端实现的负载均衡。而服务器端的负载均衡配置及原理也非常简单。 它的原理是由 PMON进程向listener定期的报告本节点的负载情况。listener了解了各个节点的负载情况后,会根据实际负载把收到的连接请求定向到负载较低的节点上去。如果你查看listener的log会发现很多service_update的条目,这些就是PMON在定期的汇报。 在服务器端实现负载均衡非常简单,只要配置remote_listener参数即可,这样每一个listener都会知道每一个节点的负载情况。
在了解了上面的connection blance之后,也许你在想这样已经足够好了,为什么还要发展service这种load blance呢? 这就要分析RAC的本质了。RAC通过cache fusion模式来保证数据同步及一致。而cache fusion也是有一定开销的。 所以,如果有多个session需要同步的访问同一份数据,还是让他们都通过一个instance来访问比较好,这样会减少cache fusion的开销。让我们用ERP系统为例,若多个人同时访问销售模块,而通过connection blance把它们分散到不同的节点上,这时整个系统就需要通过cache fusion来频繁的交换数据以保证数据的一致性。 但如果通过service,他们都连接到同一个节点,就减去了cache fusion的开销。
Oracle RAC load blance的更多相关文章
- Oracle RAC 服务器端连接负载均衡(Load Balance)
Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于运行时,RAC中各节点的PMON进程每3秒会将各自节点的连接负荷数更新到 ...
- Oracle RAC 客户端连接负载均衡(Load Balance)
实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连 ...
- oracle rac安装
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4681351&uid=29655480 参考 1.百度文库中的收藏 2. ...
- oracle rac理解和用途扩展
Oracle RAC的优势在于利用多个节点(数据库实例)组成一个数据库,这样在保证了数据库高可用性的情况下更充分的利用了多个主机的性能,而且可以通过增加节点进行性能的扩展.实现Oracle RAC需要 ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
- Oracle RAC 负载均衡测试(结合服务器端与客户端)
Oracle RAC 负载均衡使得从客户端发起的连接能够有效地分配到监听器负载较小的实例上.有两种方式实现客户端负载均衡,一是通过配置客户端的load_balance,一是通过配置服务器端的remot ...
- Oracle RAC环境下如何更新patch(Rolling Patch)
Oracle RAC数据库环境与单实例数据库环境有很多共性,也有很多异性.对于数据库补丁的更新同样如此,都可以通过opatch来完成.但RAC环境的补丁更新有几种不同的更新方式,甚至于可以在零停机的情 ...
- oracle rac常用的命令
oracle rac常用的命令 节点层:olsnodes 网络层: oifcfg 集群层:crsctl,ocrcheck,ocrdump,ocrconfig 应用层:srvctl,onsctl,crs ...
- Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效
崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...
随机推荐
- ACM_走楼梯Ⅱ
走楼梯Ⅱ Time Limit: 2000/1000ms (Java/Others) Problem Description: 有一楼梯共N+1级,刚开始时你在第一级,若每次能走M级(1<=M& ...
- C# 访问mongodb数据库
1.引用四个mongodb动态库MongoDB.Bson.dll,MongoDB.Driver.Core.dll,MongoDB.Driver.dll,MongoDB.Driver.Legacy.dl ...
- SQL函数类的操作,增加,查询
数据库连接: 表的创建: 创建连接对象,命令对象类: 添加函数: 查询函数类: List<>集合,里面专门放对象 函数主体: 查询: foreach只能修改,不能添加删除
- php函数的定义和声明
1.函数的定义 函数是一个被命名的独立的代码段,它执行特定任务,并可以给调用它的程序返回值. 2.函数的优点 提高程序的重用性 提高程序的可维护性 可以提高软件的开发效率 提高软件的可靠性 控制程序的 ...
- P2668 斗地主 贪心+深搜
题目描述 牛牛最近迷上了一种叫斗地主的扑克游戏.斗地主是一种使用黑桃.红心.梅花.方片的A到K加上大小王的共54张牌来进行的扑克牌游戏.在斗地主中,牌的大小关系根据牌的数码表示如下:3<4< ...
- tp登陆注册(转)
登录时,更新用户数据,登录ip和登录时间,以及登录次数+1,此实现方便不知是否合适,待验证.源码地址:https://github.com/grh0812/thinkphp-login-registe ...
- 常用css属性总结
边框修饰:border------>top,bottom,left,right上下左右边框 分为:color,类型style{ groove,dashed,ridge,solid}一个值---- ...
- C/c++中 数组全局变量的定义声明 与 引用声明
数组声明一次,所有的 定义声明 有切仅有一次! 别人遇到的问题如下: 在声明定义时,定义数组如下: int G_glob[100]; 在其他文件引用时声明如下: int *G_glob; 这样的操 ...
- dubbo之服务降级
向注册中心写入动态配置覆盖规则:(通过由监控中心或治理中心的页面完成) RegistryFactory registryFactory = ExtensionLoader.getExtensionLo ...
- MySQL学习笔记(十二)__连接查询(一)
连接查询含义:又称多表查询,当查询的字段来自多个表时,就会用到连接查询 笛卡尔乘积现象:表1 有 m 行,表2 有 n 行,结果 = m*n 行发生原因:没有有效的连接条件如何避免:添加有效的连接条件 ...