首先声明 本文基本是阅读 大话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的更多相关文章

  1. Oracle RAC 服务器端连接负载均衡(Load Balance)

    Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于运行时,RAC中各节点的PMON进程每3秒会将各自节点的连接负荷数更新到 ...

  2. Oracle RAC 客户端连接负载均衡(Load Balance)

    实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连 ...

  3. oracle rac安装

    http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4681351&uid=29655480 参考 1.百度文库中的收藏 2. ...

  4. oracle rac理解和用途扩展

    Oracle RAC的优势在于利用多个节点(数据库实例)组成一个数据库,这样在保证了数据库高可用性的情况下更充分的利用了多个主机的性能,而且可以通过增加节点进行性能的扩展.实现Oracle RAC需要 ...

  5. 【转】Oracle RAC 环境下的连接管理

    文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...

  6. Oracle RAC 负载均衡测试(结合服务器端与客户端)

    Oracle RAC 负载均衡使得从客户端发起的连接能够有效地分配到监听器负载较小的实例上.有两种方式实现客户端负载均衡,一是通过配置客户端的load_balance,一是通过配置服务器端的remot ...

  7. Oracle RAC环境下如何更新patch(Rolling Patch)

    Oracle RAC数据库环境与单实例数据库环境有很多共性,也有很多异性.对于数据库补丁的更新同样如此,都可以通过opatch来完成.但RAC环境的补丁更新有几种不同的更新方式,甚至于可以在零停机的情 ...

  8. oracle rac常用的命令

    oracle rac常用的命令 节点层:olsnodes 网络层: oifcfg 集群层:crsctl,ocrcheck,ocrdump,ocrconfig 应用层:srvctl,onsctl,crs ...

  9. Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

    崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...

随机推荐

  1. JavaScript01天学习笔记分享

    01知识点 JavaScript 代码运行在浏览器(后缀名.js) 和java完全不同的东西,只是名称类型而已 src 引用脚本   <Script></Script> ale ...

  2. NodeJs学习记录(三)vscode下启动一个nodejs的web工程

    2017/01/23 星期一 前言:根据手上现成的一个web工程来学习 1.配置vscode使其可以识别nodejs的页面文件.ejs 2.先把项目拖拽至vscode的编辑界面,在"查看&q ...

  3. windows多线程应用编程注意事项

    1,资源争用保护 对于文件操作.界面资源.GDI操作等一般由主线程完成的任务,要加以顺序化处理(serialization),即一个资源一次只能由一个线程访问,多个线程同时访问将导致错误. 方法一般可 ...

  4. 生产环境4.3.5jboss内存调优

    1.查看jboss的监控工具 http://XXX/jmx-console/htmladaptor 2.查看jvm的监控工具 jdk\bin jvisualvm.exe jmc.exe 3.查看jbo ...

  5. JPQL 模糊查询,查询条件拼接(like使用)

    @Transactional public List<ViewCorplist2> findAllCorpsLikeK(String kw) { System.out.println(kw ...

  6. Windows开源Web服务器性能和压力测试工具

    linux有很多开源工具用来测试服务器负载,而windows上非常少,几乎没有除了几个复杂的JMeter WET等 将两个好用的工具是Linux版本通过Cygwin移植过来,方便广大windows人员 ...

  7. SDK _ 静态控件的使用

    静态控件的使用 静态控件主要区分两种使用方式:文本 \ 图片 在使用静态控件的时候,ID始终默认为 IDC_STATIC,需要进行更改 怎样通过可视化编程显示一张图片 需要添加一个位图资源 需要添加一 ...

  8. CLISTCTRL2

    回顾: 刚刚写完,因为是分期写的,所以最初想好好做一下的文章格式半途而废了~说的也许会有点啰嗦,但是所有的基础用到的技术细节应该都用到了. 如果还有什么疑问,请回复留言,我会尽力解答. 如果有错误,请 ...

  9. vue组件---插槽

    (1)插槽内容 Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将 <slot> 元素作为承载分发内容的出口. 在父级组件里可以 ...

  10. IMDB电影排行爬取分析

    一.打开IMDB电影T250排行可以看见250条电影数据,电影名,评分等数据都可以看见 按F12进入开发者模式,找到这些数据对应的HTML网页结构,如下所示 可以看见里面有链接,点击链接可以进入电影详 ...