[Oracle] RAC 之 - 负载均衡深入解析

所属分类: 数据库 / oracle 阅读数: 52
收藏 0 赞 0 分享

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

更多精彩内容其他人还在看

ORACLE中如何找到未提交事务的SQL语句详解

这篇文章主要给大家介绍了关于ORACLE中如何找到未提交事务的SQL语句,文中通过示例代码介绍的非常详细,对大家学习或者使用ORACLE具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Oracle分组函数之ROLLUP的基本用法

这篇文章主要给大家介绍了关于Oracle分组函数之ROLLUP的基本用法,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Oracle表空间设置和管理浅析

这篇文章主要给大家介绍了关于Oracle表空间设置和管理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Oracle使用MyBatis中RowBounds实现分页查询功能

这篇文章主要介绍了Oracle使用MyBatis中RowBounds实现分页查询 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Oracle自定义脱敏函数的代码详解

这篇文章主要介绍了Oracle自定义脱敏函数的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle查询截至到当前日期月份所在年份的所有月份

这篇文章主要介绍了oracle查询截至到当前日期月份所在年份的所有月份,本文通过代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle数据库导入.dmp脚本的sql 语句

这篇文章主要介绍了oracle数据库导入.dmp脚本的sql语句,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
收藏 0 赞 0 分享

oracle通过1条语句插入多个值的方法示例

这篇文章主要给大家介绍了关于oracle通过1条语句插入多个值的方法,文中通过示例代码介绍的非常详细,对大家学习或者使用oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

oracle导入导出表时因一个分号引发的惨案

这篇文章主要给大家介绍了关于oracle导入导出表时因一个分号引发的惨案,文中通过示例代码介绍的非常详细,对大家学习或者使用oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Oracle创建设置查询权限用户的方法

这篇文章主要给大家介绍了关于Oracle创建设置查询权限用户的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多