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

        Oracle RAC 负载均衡使得从客户端发起的连接能够有效地分配到监听器负载较小的实例上。有两种方式实现客户端负载均衡,一是通过配置客户端的load_balance,一是通过配置服务器端的remote_listener参数。两种方式各有优劣,而且两者并不相互排斥,因此可以结合两种方式来更加有效的实现负载均衡。本文将描述两者结合的使用情况(oralce 10g rac)。

        有关客户端与服务端负载均衡的单独测试请参考:
              Oracle RAC 客户端连接负载均衡(Load Balance)
              Oracle RAC 服务器端连接负载均衡(Load Balance)

        本文的测试将结合前篇文章使用的脚本与样例,是前两篇测试的一个总结。

 

一、配置需求

1、服务器端各节点监听器正常提供服务,如果使用非缺省的1521端口,请参考 ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
  oracle@bo2dbp:~> more $ORACLE_HOME/network/admin/listener.ora
  # listener.ora.bo2dbp Network Configuration File: /u01/oracle/db/network/admin/listener.ora.bo2dbp
  # Generated by Oracle configuration tools.

  LISTENER_BO2DBP =
    (DESCRIPTION_LIST =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = bo2dbp-vip.2gotrade.com)(PORT = 1521)(IP = FIRST))
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.51)(PORT = 1521)(IP = FIRST))
      )
    )

  SID_LIST_LISTENER_BO2DBP =
    (SID_LIST =
      (SID_DESC =
        (SID_NAME = PLSExtProc)
        (ORACLE_HOME = /u01/oracle/db)
        (PROGRAM = extproc)
      )
    )

  oracle@bo2dbp:~> lsnrctl status
  Service "GOBO4" has 2 instance(s).
    Instance "GOBO4A", status READY, has 2 handler(s) for this service...
    Instance "GOBO4B", status READY, has 1 handler(s) for this service...

2、服务器端的remote_listener参数设置
  要求remote_listener参数的连接标识符在服务器端的tnsnames.ora中有对应的条目

  SQL> show parameter listener

  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ------------------------------
  local_listener                       string
  remote_listener                      string      remote_lsnr_gobo4

  oracle@bo2dbp:~> more $ORACLE_HOME/network/admin/tnsnames.ora
  # tnsnames.ora Network Configuration File: /u01/oracle/db/network/admin/tnsnames.ora
  # Generated by Oracle configuration tools.
  remote_lsnr_gobo4 =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))
    )

3、客户端tnsnames.ora中启用load_balance
  oracle@SZDB:~> tail -11 $ORACLE_HOME/network/admin/tnsnames.ora

  GOBO4 =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.61)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.62)(PORT = 1521))
      (LOAD_BALANCE = yes)
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = GOBO4)
      )
    )

二、测试Load Balance

#还是使用之前的脚步来进行测试
#Author : Robinson
#Blog : http://blog.csdn.net/robinson_0612
oracle@SZDB:~> more load_balance.sh
#!/bin/bash
for i in {1..1000}
do
echo $i
sqlplus -S system/oracle@GOBO4 <<EOF
select instance_name from v\$instance;
EOF
sleep 1
done
exit 0

oracle@SZDB:~> ./load_balance.sh >load_bal.log   

#查看日志
oracle@SZDB:~> grep GOBO4A load_bal.log |wc -l
750
oracle@SZDB:~> grep GOBO4B load_bal.log |wc -l
250

#查看监听器的日志
oracle@bo2dbp:/u01/oracle/db/network/log> grep establish listener_bo2dbp.log |wc -l
894

oracle@bo2dbp:/u01/oracle/db/network/log> grep INSTANCE_NAME=GOBO4 listener_bo2dbp.log |wc -l
415

#从上面的查询中可以得知,节点bo2dbp总共接受了894个连接请求,而有415连接请求是由bo2dbs转发过来的
#因此,实际上从客户端发起到bo2dbp的实际连接请求数为894-415=479

#下面来看在节点bo2dbs上的监听日志
oracle@bo2dbs:/u01/oracle/db/network/log> grep establish listener_bo2dbs.log |wc -l
665

oracle@bo2dbs:/u01/oracle/db/network/log> grep INSTANCE_NAME=GOBO4 listener_bo2dbs.log |wc -l
144
#从上面的查询中可知,节点bo2dbs总共接受了665个连接请求,而有144个连接请求是由bo2dbp转发过来的
#因此,实际上从客户端发起到bo2dbs的实际连接请求数为655-144=511

#从上面的结果可知,
#基于客户端的连接请求数为节点bo2dbp为479,节点bo2dbs为511
#监听器路由到本地实例数目为,节点bo2dbp,479-144=335,节点bo2dbs,511-415=96
#远程监听器路由道本地实例的数据为,节点bo2dpb为415,节点bo2dbs为144
#监听器路由的概念是指基于服务器端的负载均衡
#即服务器端的监听器根据自身以及远程监听器的负载情况来确定将当前的连接请求转发到本地或远程,此即为路由。

三、更多参考

有关Oracle 网络配置相关基础以及概念性的问题请参考:
        配置ORACLE 客户端连接到数据库
        配置非默认端口的动态服务注册
       配置sqlnet.ora限制IP访问Oracle       Oracle 监听器日志配置与管理
       设置 Oracle 监听器密码(LISTENER)       Oracle RAC 监听配置       ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

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

       配置RAC负载均衡与故障转移

   

有关基于用户管理的备份和备份恢复的概念请参考

    Oracle 冷备份

    Oracle 热备份

    Oracle 备份恢复概念

    Oracle 实例恢复

    Oracle 基于用户管理恢复的处理

   SYSTEM 表空间管理及备份恢复

    SYSAUX表空间管理及恢复

   Oracle 基于备份控制文件的恢复(unsing backup controlfile)

 

有关RMAN的备份恢复与管理请参考

    RMAN 概述及其体系结构

    RMAN 配置、监控与管理

    RMAN 备份详解

    RMAN 还原与恢复

    RMAN catalog 的创建和使用

    基于catalog 创建RMAN存储脚本

    基于catalog 的RMAN 备份与恢复

    RMAN 备份路径困惑

 

有关ORACLE体系结构请参考

    Oracle 表空间与数据文件

    Oracle 密码文件

    Oracle 参数文件

    Oracle 联机重做日志文件(ONLINE LOG FILE)

    Oracle 控制文件(CONTROLFILE)

    Oracle 归档日志

    Oracle 回滚(ROLLBACK)和撤销(UNDO)

    Oracle 数据库实例启动关闭过程

    Oracle 10g SGA 的自动化管理

    Oracle 实例和Oracle数据库(Oracle体系结构)      

时间: 2024-10-30 03:24:50

Oracle RAC 负载均衡测试(结合服务器端与客户端)的相关文章

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

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

搭建LVS负载均衡测试环境

实现负载均衡有很多种方式 土豪直接F5,性能最好,价格最贵 没钱也可以使用Apache,Nginx 工作在网络的第四层,虽然性能一般,但是很灵活,比如可以将80端口映射到真实服务器的8080端口. 还有一种选择LVS ,它工作在网络的第三层,性能较好,非常稳定. 但是它不能实现端口的重新映射.因为在网络的第三层,并不清楚端口的信息. 下面的实验搭建了一个LVS负载均衡测试环境,采用DR的方式. 客户端访问LVS前置机 这个请求如下 源MAC(client mac) 目标MAC(DR mac) 源

LVS+Keepalived构建高可用负载均衡(测试篇)_Linux

一. 启动LVS高可用集群服务 首先,启动每个real server节点的服务: [root@localhost ~]# /etc/init.d/lvsrs start start LVS of REALServer 然后,分别在主备Director Server启动Keepalived服务: [root@DR1 ~]#/etc/init.d/Keepalived start [root@DR1 ~]#/ ipvsadm -L IP Virtual Server version 1.2.1 (s

配置 RAC 负载均衡与故障转移

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

Oracle ARC负载均衡具体配置详解

本文详细介绍了Oracle负载均衡的具体配置.通过客户端和服务器端两方面进行配置,文中代码比 较全面,值得大家参考. 对于专业的数据处理存储的Oracle ARC而言,负载均衡的设置就更为重要了.那么如何对Oracle负 载均衡进行配置呢?就让我们一起看看本文来学习一下吧.我们将从客户端和服务器端来进行解说. Oracle负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工 作,在Oracle负载均衡中分为两种,一种是基于客户端连接的,另外一种是基于服务器端的,

Oracle ARC负载均衡

本文详细介绍了Oracle负载均衡的具体配置.通过客户端和服务器端两方面进行配置,文中代码比 较全面,值得大家参考. 对于专业的数据处理存储的Oracle ARC而言,负载均衡的设置就更为重要了.那么如何对Oracle负 载均衡进行配置呢?就让我们一起看看本文来学习一下吧.我们将从客户端和服务器端来进行解说. Oracle负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工 作,在Oracle负载均衡中分为两种,一种是基于客户端连接的,另外一种是基于服务器端的,

Oracle RAC的failover测试简介

Oracle RAC中,除了基于客户端的TAF方式之外,还有基于服务器端的TAF方式,可以把服务端的TAF方式看作是客户端TAF方式的一个升级版吧.服务器端的TAF,当然是需要在服务器端进行配置了,这个是通过Service来完成的.本文主要描述Oracle 10g rac 下通过service方式配置服务器端的TAF. 1.服务器端.客户端的环境 #服务器端环境,host信息 oracle@bo2dbp:~> cat /etc/hosts |grep vip 192.168.7.61   bo2

windows使用nginx实现网站负载均衡测试实例_win服务器

如果你关注过nginx,必定知道nginx这个软件有什么用的,如果你的网站访问量越来越高,一台服务器已经没有办法承受流量压力,那就增多几台服务器来做负载吧.做网站负载可以买硬件设备来实现,比如F5,不过价格就几十万到上百万,够贵,本文介绍做网站负载的软件是免费的,nginx目前好多门户网站与大访问量的网站都在使用做为HTTP服务器,所以nginx是非常优秀的,下面介绍做负载测试吧.环境:(2台服务器)第一台: CPU:Inter(R) Pentium(R) 4 CPU 2.8G 内存:1G 系统

Oracle RAC failover 测试(连接时故障转移)

    Oracle RAC 集群最突出的表现就是高可用性,这些内容主要包括load balance以及failover,通过这些技术使得单点故障不影响客户端端应用程序对数据库的正常访问,以及通过创建service实现节点间负载均衡.本文主要描述Oracle 10g rac环境下的Oracle failover测试.    下面是一些关于这方面的基础参考或相关链接:  有关负监听配置,载均衡(load balance)以及Oracle service请参考    ORACLE RAC 监听配置