服务器端RAC负载均衡配置代码

网络 网络优化 网络运维
文章摘要:本文将服务器端RAC负载均衡配置的具体代码展现了出来,我们需要先修改客户端的文件内容,测试连接之后才能进行真正的服务器设置。

前面我们介绍了RAC的客户端负载均衡配置,接下来就到了服务器端RAC负载均衡配置的具体代码介绍了,通过两方面的配置和测试之后,整个负载均衡才能完全的设置好。那么就让我们赶紧来看一下啊具体的服务器端RAC负载均衡配置内容吧。

从Oracle 10g开始,服务器端负载均衡可以根据RAC中各节点的负荷及连接数情况,而判定将新的客户端连接分配到负荷最小的节点上去。RAC中各节点的PMON进程每3秒会将各自节点的负荷(包括LOAD、最大LOAD、CPU使用率)及连接数更新到service_register里面,然后假如节点的负荷有发生变化,将会通知到监听程序,由监听程序再决定新的客户端连接分配至哪个节点。假如RAC中一个节点的监听失败了,PMON每一分钟会去检查一次是否已经恢复正常。

服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目,然后再在初始化参数里面设置remote_listeners这个参数。

1、测试客户端的TNS

修改客户端tnsnames.ora的文件,内容如下:

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

测试连接:

  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      RACDB1  

#p#2、配置服务器端TNS

服务器端的监听配置是在各节点的tnsnames.ora里面添加一个连接到各个节点监听的条目(红色代码),在服务器端每个节点的tnsnames.ora里面的内容如下:

  1. [root@NODE01 admin]# pwd  
  2. /orac/orahome/oracle/product/10.2.0/db_1/network/admin  
  3. [root@NODE01 admin]#  
  4. [root@NODE01 admin]# more tnsnames.ora  
  5. # tnsnames.ora Network Configuration File: /orac/orahome/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora  
  6. # Generated by Oracle configuration tools.  
  7.  
  8. RACDB1 =  
  9.   (DESCRIPTION =  
  10.     (ADDRESS = (PROTOCOL = TCP)(HOST = vip01)(PORT = 1521))  
  11.     (CONNECT_DATA =  
  12.       (SERVER = DEDICATED)  
  13.       (SERVICE_NAME = RACDB.chenxu.yo2.cn)  
  14.       (INSTANCE_NAME = RACDB1)  
  15.     )  
  16.   )  
  17.  
  18. RACDB =  
  19.   (DESCRIPTION =  
  20.     (ADDRESS = (PROTOCOL = TCP)(HOST = vip01)(PORT = 1521))  
  21.     (ADDRESS = (PROTOCOL = TCP)(HOST = vip02)(PORT = 1521))  
  22.     (LOAD_BALANCE = yes)  
  23.     (CONNECT_DATA =  
  24.       (SERVER = DEDICATED)  
  25.       (SERVICE_NAME = RACDB.chenxu.yo2.cn)  
  26.     )  
  27.   )  
  28.  
  29. LISTENERS_RACDB =  
  30.   (ADDRESS_LIST =  
  31.     (ADDRESS = (PROTOCOL = TCP)(HOST = vip01)(PORT = 1521))  
  32.     (ADDRESS = (PROTOCOL = TCP)(HOST = vip02)(PORT = 1521))  
  33.   )  
  34.  
  35. RACDB2 =  
  36.   (DESCRIPTION =  
  37.     (ADDRESS = (PROTOCOL = TCP)(HOST = vip02)(PORT = 1521))  
  38.     (CONNECT_DATA =  
  39.       (SERVER = DEDICATED)  
  40.       (SERVICE_NAME = RACDB.chenxu.yo2.cn)  
  41.       (INSTANCE_NAME = RACDB2)  
  42.     )  
  43.   ) 

#p#3、在初始化参数中设置参数remote_listeners

  1. SQL> conn sys/chenxu@racdb as sysdba  
  2. 已连接。  
  3. SQL> show parameter remote_listener  
  4.  
  5. NAME                                 TYPE        VALUE  
  6. ------------------------------------ ----------- ------------------------  
  7. remote_listener                      string  
  8. SQL>  
  9. SQL> alter system set remote_listener='LISTENERS_RACDB' sid='*';  
  10. #(reset命令可以撤销设置,恢复默认值)  
  11. 系统已更改。  
  12. SQL>  
  13. SQL> show parameter remote_listener  
  14. NAME                                 TYPE        VALUE  
  15. ------------------------------------ ----------- ---------------------  
  16. remote_listener                      string      LISTENERS_RACDB 

正确配置参数后,通过lsnrctl status命令看到在监听启动以后,可以看到监听器上有2个instance。

  1. [root@NODE01 bin]# lsnrctl status  
  2. LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 18-DEC-2008 05:40:08  
  3. Copyright (c) 1991, 2005, Oracle.  All rights reserved.  
  4. Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))  
  5. STATUS of the LISTENER  
  6. ------------------------  
  7. Alias                     LISTENER_NODE01  
  8. Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production  
  9. Start Date                18-DEC-2008 00:18:07  
  10. Uptime                    0 days 5 hr. 22 min. 1 sec  
  11. Trace Level               off 
  12. Security                  ONLocal OS Authentication  
  13. SNMP                      OFF 
  14.  
  15. Listener Parameter File   /orac/orahome/oracle/product/10.2.0/db_1/network/admin/listener.ora  
  16. Listener Log File         /orac/orahome/oracle/product/10.2.0/db_1/network/log/listener_node01.log  
  17. Listening Endpoints Summary...  
  18.   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.170)(PORT=1521)))  
  19.   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.180)(PORT=1521)))  
  20.   (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))  
  21.  
  22. Services Summary...  
  23. Service "+ASM" has 1 instance(s).  
  24.   Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...  
  25. Service "+ASM_XPT" has 1 instance(s).  
  26.   Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...  
  27. Service "RACDB.chenxu.yo2.cn" has 2 instance(s).  
  28.   Instance "RACDB1", status READY, has 2 handler(s) for this service...  
  29.   Instance "RACDB2", status READY, has 1 handler(s) for this service...  
  30. Service "RACDBXDB.chenxu.yo2.cn" has 2 instance(s).  
  31.   Instance "RACDB1", status READY, has 1 handler(s) for this service...  
  32.   Instance "RACDB2", status READY, has 1 handler(s) for this service...  
  33. Service "RACDB_XPT.chenxu.yo2.cn" has 2 instance(s).  
  34.   Instance "RACDB1", status READY, has 2 handler(s) for this service...  
  35.   Instance "RACDB2", status READY, has 1 handler(s) for this service...  
  36. The command completed successfully 

这时在客户端用sqlplus连接服务器数据库可能会出现如下错误:

  1. ERROR:  
  2. ORA-12545: 因目标主机或对象不存在,连接失败 

#p#4、解决ORA-12545连接失败问题

配置客户端的Hosts文件

通过在客户端的Hosts文件中加入对两个服务名的名字解析可以解决ORA-12545问题。在windows下Hosts文件在C:\WINDOWS\system32\drivers\etc目录下,在linux修改/etc/hosts文件的内容。添加如下内容:

  1. 192.168.1.170   node01  
  2. 192.168.1.171   node02  
  3. 其中node01、node02为服务器节点的主机名。  
  4. [root@NODE01 bin]# hostname  
  5. NODE01  

5、通过客户端测试RAC负载均衡配置

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

开启sqlplus_2:

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

可以看到客户端能够连接到实例RACDB2,说明基于服务器端RAC负载均衡配置成功。

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

2010-04-21 12:57:33

RAC负载均衡配置

2010-04-22 23:07:47

服务器负载均衡

2010-05-05 18:28:16

负载均衡服务器

2011-11-22 21:26:59

pfSense配置Web服务器负载均衡

2010-05-27 18:49:38

SVN入门

2014-01-15 10:06:30

vFlash

2010-05-05 18:44:27

服务器负载均衡

2012-10-15 13:40:15

IBMdw

2019-06-19 14:58:38

服务器负载均衡客户端

2009-09-16 15:44:25

2013-12-25 11:01:16

JavaScript

2011-06-07 16:01:46

Android 服务器 数据交互

2015-11-04 14:14:56

HTTP网络协议

2017-12-06 22:29:53

2009-07-22 10:25:37

2010-05-10 14:02:53

服务器负载均衡

2009-06-10 16:25:02

2009-01-10 18:53:01

服务器ServerDNS

2010-05-06 14:15:02

流媒体服务器负载均衡

2014-11-14 11:03:56

微软.NET
点赞
收藏

51CTO技术栈公众号