暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle 10g RAC LoadBalance(一)

原创 黄宸宁 2013-04-18
541

Oracle RAC具备高可用性(High Availablity)和负载均衡(Load Balance)的特性。

其中负载均衡是指把数据库的负载平均分配到集群中的各个节点(主要指新的连接),以提高系统的整体吞吐量。

Oracle RAC通常情况下有以下两种方式来实现会话连接的负载均衡:

1. 基于客户端连接的负载均衡

2. 基于服务器端的负载均衡

一、基于客户端的负载均衡

基于客户端的负载均衡主要是通过在客户端的tnsnames.ora文件中增加load_balance=yes的条目来实现。如果未设置该条目,Oracle Net会按地址列表中的顺序进行连接,直到连接成功为止(实际上就是failover的功能) 。

当设置了load_balance=yes的条目后,Oracle Net会从多个地址中随机地选择一个地址进行连接,直到连接成功为止。

基于客户端的负载均衡并不考虑各个实例上真实连接的数量,只是通过随机选择来分配连接,所以最后的结果可能不一定是平衡的,尤其是在短时间内同时发起多个连接的时候,很可能会被分配到同一个节点上。

示例:

ORCLDBLB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.112)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.114)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldb)
)
)

二、基于服务器端的负载均衡


Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去。 在数据库运行过程中,PMON后台进程会收集系统的负载信息,然后登记到Listener中。 最少1分钟,最多10分钟PMON就要做一个信息更新,并且如果节点的负载越高,更新频率就越高,以保证Listener能掌握每个节点准确的负载情况。如果Listener关闭了,PMON进程会每隔1秒钟检查Listener是否重启。除了这个自动的,定时的更新任务外,用户也可以使用alter system register 命令来手工进行这个过程。实例启动时PMON进程进行的第一次登记过程叫作Server-register,而后的更新过程叫作service-update。

主要通过在服务器端配置local_listener和remote_listener这两个参数来实现服务器端的负载均衡

可以同时配置基于客户端和基于服务器端的负载均衡

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论