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

网络 网络优化 网络运维
文章摘要:本文详细介绍了RAC负载均衡配置的代码内容,主要是针对客户端的。那么我们首先要了解当前数据库版本和其他信息然后才能进行设置。

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

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

客户端RAC负载均衡配置

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

  1. SQL> select * from v$version;  
  2. BANNER  
  3. ----------------------------------------------------------------  
  4. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod  
  5. PL/SQL Release 10.2.0.1.0 - Production  
  6. CORE    10.2.0.1.0      Production  
  7. TNS for Linux: Version 10.2.0.1.0 - Production  
  8. NLSRTL Version 10.2.0.1.0 - Production 

2、在客户端的tnsnames.ora的配置中,只要连接的是整个数据库的服务名,不是实例名。

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

  1. SQL> show parameter service_names   
  2. NAME                                 TYPE        VALUE  
  3. ------------------------------------ ----------- ------------------------------  
  4. service_names                        string      RACDB.chenxu.yo2.cn  
  5. SQL> 

#p#3、在客户端配置TNS:

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

  1. RACDB =  
  2.   (DESCRIPTION =  
  3.     (ADDRESS_LIST =  
  4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.170)(PORT = 1521))  
  5.       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.171)(PORT = 1521))  
  6.       (LOAD_BALANCE = on)  
  7.     )  
  8.     (CONNECT_DATA =  
  9.      (SERVICE_NAME = racdb.chenxu.yo2.cn)  
  10.     )  
  11.  ) 

配置TNS中的HOST值是服务器端RAC配置中的虚拟IP即VIP,如下:

  1. [root@NODE01 admin]# more /etc/hosts  
  2. # Do not remove the following line, or various programs  
  3. # that require network functionality will fail.  
  4. 127.0.0.1       localhost.localdomain   localhost  
  5. ::1     localhost6.localdomain6 localhost6  
  6.  
  7. 192.168.1.180         node01  
  8. 192.168.1.181         node02  
  9. 192.168.1.170         vip01  
  10. 192.168.1.171         vip02  
  11. 10.10.10.1            priv01  
  12. 10.10.10.2            priv02 

4、在客户端测试: 

开启sqlplus_1:

  1. SQL> conn sys/chenxu@racdb as sysdba  
  2. 已连接。  
  3. SQL>  
  4. SQL> show parameter instance_name   
  5.  
  6. NAME                                 TYPE        VALUE  
  7. ------------------------------------ ----------- ------------------------------  
  8. instance_name                        string      RACDB2  
  9. SQL>  
  10. SQL> select instance_name from gv$instance;   
  11.  
  12. INSTANCE_NAME  
  13. ----------------  
  14. RACDB1  
  15. RACDB2 

#p#开启sqlplus_2:

  1. SQL> conn sys/chenxu@racdb as sysdba  
  2. 已连接。  
  3. SQL> show parameter instance_name   
  4.  
  5. NAME                                 TYPE        VALUE  
  6. ------------------------------------ ----------- ------------------------------  
  7. instance_name                        string      RACDB1 

开启sqlplus_3:

  1. SQL> conn sys/chenxu@racdb as sysdba  
  2. 已连接。  
  3. SQL>  
  4. SQL> show parameter instance_name  
  5.  
  6. NAME                                 TYPE        VALUE  
  7. ------------------------------------ ----------- ------------------------------  
  8. instance_name                        string      RACDB2 

开启sqlplus_4:

  1. SQL> conn sys/chenxu@racdb as sysdba  
  2. 已连接。  
  3. SQL> show parameter instance_name  
  4.  
  5. NAME                                 TYPE        VALUE  
  6. ------------------------------------ ----------- ------------------------------  
  7. instance_name                        string      RACDB1 

5、总结

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

责任编辑:佟健 来源: 互联网
相关推荐

2010-04-21 13:18:33

RAC负载均衡配置

2021-04-30 08:19:32

SpringCloud客户端负载Ribbo

2023-10-30 11:28:33

Kubernetes负载均衡

2019-06-19 14:58:38

服务器负载均衡客户端

2011-03-24 13:00:31

配置nagios客户端

2010-05-05 18:23:24

RAC负载均衡

2010-04-21 12:28:50

Oracle负载均衡

2021-08-23 06:59:22

Nacos负载均衡客户端

2010-04-20 22:19:29

tomcat负载均衡配

2011-03-21 14:53:36

Nagios监控Linux

2011-04-06 14:24:20

Nagios监控Linux

2014-08-11 16:35:35

KafkaJava客户端

2011-08-17 16:50:54

2010-12-31 14:23:57

Exchange Se

2010-04-08 15:35:13

Oracle 简易客户

2010-03-18 16:49:43

Java Socket

2017-01-11 10:38:17

MySQL客户端代码

2011-02-21 09:06:19

LinuxEmail配置

2011-03-29 14:44:44

Zabbix安装

2010-05-31 15:55:42

点赞
收藏

51CTO技术栈公众号