admin

客户端RAC负载均衡配置代码

admin 运维技术 2022-11-16 486浏览 0

熟悉Oracle数据库的朋友们应该都清楚RAC的负载均衡分为两种。那么现在,我们针对其中一种——客户端RAC负载均衡配置进行一个全面具体的介绍。文中包含了主要的配置代码,希望通过介绍,能让大家清楚配置过程。稍后我们还会介绍RAC服务器负载均衡配置。

负载均衡是指连接的负载均衡。RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。

客户端RAC负载均衡配置

1、当前服务器中的数据库版本如下:

SQL>select*fromv$version; 
  • BANNER ----------------------------------------------------------------
  • OracleDatabase10gEnterpriseEditionRelease10.2.0.1.0-Prod PL/SQLRelease10.2.0.1.0-Production
  • CORE10.2.0.1.0Production TNSforLinux:Version10.2.0.1.0-Production
  • NLSRTLVersion10.2.0.1.0-Production
  • 2、在客户端的tnsnames.ora的配置中,只要连接的是整个数据库的服务名,不是实例名。

    在服务器端查看RAC数据库的service_names:

    SQL>showparameterservice_names 
  • NAMETYPEVALUE -----------------------------------------------------------------------------
  • service_namesstringRACDB.chenxu.yo2.cn SQL>
  • #p#3、在客户端配置TNS:

    客户端RAC负载均衡配置相对简单,只需要在tnsnames.ora中添加LOAD_BALANCE=ON这么一个选项即可。

    RACDB= 
  • (DESCRIPTION= (ADDRESS_LIST=
  • (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.170)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.171)(PORT=1521))
  • (LOAD_BALANCE=on) )
  • (CONNECT_DATA= (SERVICE_NAME=racdb.chenxu.yo2.cn)
  • ) )
  • 配置TNS中的HOST值是服务器端RAC配置中的虚拟IP即VIP,如下:

    [root@NODE01admin]#more/etc/hosts 
  • #Donotremovethefollowingline,orvariousprograms #thatrequirenetworkfunctionalitywillfail.
  • 127.0.0.1localhost.localdomainlocalhost ::1localhost6.localdomain6localhost6
  • 192.168.1.180node01
  • 192.168.1.181node02 192.168.1.170vip01
  • 192.168.1.171vip02 10.10.10.1priv01
  • 10.10.10.2priv02
  • 4、在客户端测试:

    开启sqlplus_1:

    SQL>connsys/chenxu@racdbassysdba 
  • 已连接。 SQL>
  • SQL>showparameterinstance_name
  • NAMETYPEVALUE -----------------------------------------------------------------------------
  • instance_namestringRACDB2 SQL>
  • SQL>selectinstance_namefromgv$instance;
  • INSTANCE_NAME ----------------
  • RACDB1 RACDB2
  • #p#开启sqlplus_2:

    SQL>connsys/chenxu@racdbassysdba 
  • 已连接。 SQL>showparameterinstance_name
  • NAMETYPEVALUE
  • ----------------------------------------------------------------------------- instance_namestringRACDB1
  • 开启sqlplus_3:

    SQL>connsys/chenxu@racdbassysdba 
  • 已连接。 SQL>
  • SQL>showparameterinstance_name
  • NAMETYPEVALUE -----------------------------------------------------------------------------
  • instance_namestringRACDB2
  • 开启sqlplus_4:

    SQL>connsys/chenxu@racdbassysdba 
  • 已连接。 SQL>showparameterinstance_name
  • NAMETYPEVALUE
  • ----------------------------------------------------------------------------- instance_namestringRACDB1
  • 5、总结

    这样当客户端连接RAC数据库时,会随机在TNS里面挑个监听地址进行连接。在Oracle 10g以前,假如有节点宕机或者类似事故时,客户端可能还是选择连接到这个节点,这样会发生较长时间的TCP等待超时。而在10g以后,由于VIP和FAN的引入,这样的情况可以得到很大程度的改善。客户端RAC负载均衡配置是相对简单的,客户端负载均衡在通常情况下能够较好地工作,但是由于连接是在客户端随机发起的,这样客户端并不知道RAC各节点的负荷及连接数情况,有可能负荷大的节点还会源源不断地增加新的连接,导致RAC节点无法均衡工作。

    继续浏览有关 网络 的文章
    发表评论