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

负载均衡是指把负载平均分配到集群中的各个节点,从而提高整体性能。Oracle RAC提供两种方式实现负载均衡,以下就为大家详细介绍一下,需要的朋友可以参考下
 

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

时间: 2024-09-10 06:53:35

Oracle] RAC 之 - 负载均衡深入解析的相关文章

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

Oracle RAC提供两种方式实现负载均衡,第一种是纯技术手段,即在用户连接时,根据系统当前的负载情况决定由哪个节点处理用户请求:第二种是面向业务,人为的把应用切分成很多service,通过某个service过来的连接请求都由某个节点处理.下面来具体看看这两种手段: 纯技术手段 (面向连接的负载均衡) 1. 客户端负载均衡配置方法是在客户端tnsnames.ora文件中设置LOAD_BALANCE=YES,当客户端发起连接时,会从地址列表中随机选取一个,把连接请求随机分散给各个实例.这个技术的

Oracle RAC:负载均衡简介

负载均衡是指把负载平均分配到集群中的各个节点,从而提高整体性能.Oracle RAC提供 两种方式实现负载均衡,第一种是纯技术手段,即在用户连接时,根据系统当前的负载情况 决定由哪个节点处理用户请求:第二种是面向业务,人为的把应用切分成很多service,通过 某个service过来的连接请求都由某个节点处理.下面来具体看看这两种手段: 纯技 术手段 (面向连接的负载均衡) 1. 客户端负载均衡 配置方法是在客户端 tnsnames.ora文件中设置LOAD_BALANCE=YES,当客户端发起

ORACLE RAC的监听配置简介

Oracle RAC 监听器的配置与单实例稍有不同,但原理和实现方法基本上是相同的.在Oracle中 tns进程用于为指定网络地址上的一个或多个Oracle 实例提供服务注册,并响应来自客户端对该服务提出的连接请求.一旦连接请求到达,并派生出一个服务器进程建立服务器与用户端之间的连接(专有服务器dedicated server)或转发服务请求(共享服务器模式shared server).如果监听器知道多于一个实例提供所请求的服务,则可能会根据客户端与服务器端相关配置将请求定位到较低负载的实例为其

ORACLE RAC 监听配置 (listener.ora tnsnames.ora)

    Oracle RAC 监听器的配置与单实例稍有不同,但原理和实现方法基本上是相同的.在Oracle中 tns进程用于为指定网络地址上的一个或多个Oracle 实例提供服务注册,并响应来自客户端对该服务提出的连接请求.一旦连接请求到达,并派生出一个服务器进程建立服务器与用户端之间的连接(专有服务器dedicated server)或转发服务请求(共享服务器模式shared server).如果监听器知道多于一个实例提供所请求的服务,则可能会根据客户端与服务器端相关配置将请求定位到较低负载的

测试Oracle RAC数据库集群功能

Oracle RAC是一个集群数据库,可以实现负载均衡和故障无缝切换.如何知道RAC数据库已经实现了这些功能呢,下面就对此进行功能测试. 一. 负载均衡测试 RAC数据库的负载均衡是指对数据库连接的负载均衡,当一个新的会话连接到RAC数据库时,通过指定的分配算法将请求分配到集群的任一节点上,这就是RAC数据库完成的功能.负载均衡在RAC中分为两种:一种是基于客户端连接的负载均衡:一种是基于服务器端的负载均衡. 1. RAC客户端负载均衡 客户端连接的负载均衡配置起来非常简单,与RAC数据库的实例

Oracle RAC的服务器端连接负载均衡简介

Oracle RAC服务器端的负载均衡是根据RAC中各节点的连接负荷数情况,将新的连接请求分配到负荷最小的节点上去.当数据库处于运行时,RAC中各节点的PMON进程每3秒会将各自节点的连接负荷数更新到service_register.而对于节点中任意监听器故障或监听器意外失败时,PMON进程会每1秒钟检查当前节点上的监听是否重启,以获得最新的负载信息来及时调整负载均衡.本文主要演示suse 10 + oracle 10g rac下的服务器端的负载均衡. 一.服务器端负载均衡配置 1.为tnsna

Oracle RAC实现客户端连接负载均衡

实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连接的负载均衡,一个是基于服务器端监听器(Listener)收集到的信息来将新的连接请求分配到连接数较少实例上的实现方式.本文主要讨论的是基于客户端连接的负载均衡,并给出演示. 一.客户端的负载均衡 客户端的负载均衡主要是通过为tnsnames.ora增加load_balance=yes条目来实现,下

如何配置Oracle RAC负载均衡和故障转移

Oracle负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作?通常情况下,负载均衡分为客户端负载均衡与服务器端负载均衡.客户端负载均衡通常是在客户端的tnsnames.ora中多添加一个链接地址以及LOAD_BALANCE与failover参数.而服务器端的负载均衡则相对复杂,下面具体描述服务器端负载均衡. 一.负载均衡 注意这里的负载均衡指的是连接的负载均衡,即客户可以随机从不同的实例中连接到数据库 1.配置tnsnames.ora使得该文件中包含如下全部

Oracle RAC (或OPS)实现自动并行处理、负载均衡

RAC(Real Application Cluster)"实时应用集群",以前称作OPS(Oracle Parallel Server)"甲骨文并行服务器",是Oracle新版数据库中采用的一项 高可用性新技术之一,也是Oracle数据库支持网格计算环境的核心技术.用来在集群环境下实现多机共享数据库,以保证应用的高可用性.同时可以自动实现并 行处理及均分负载(把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力),还能实现数据库在故障时的容错和无断点恢复.