Oracle 10g RAC客户端配置监听

RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。

 

现在主流都是基于服务端的,服务器端的负载均衡可以根据RAC中各节点的负荷及连接数情况,而判定将新的客户端连接分配到负荷最小的节点上去

 

 

服务端监听在创建实例的时候自动建好

 

 

$ lsnrctl status

 

LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.1.0 - Production on 07-MAY-2014 13:37:53

 

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER_RAC1

Version                   TNSLSNR for IBM/AIX RISC System/6000: Version 10.2.0.1.0 - Production

Start Date                07-MAY-2014 12:07:52

Uptime                    0 days 1 hr. 30 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      ON

Listener Parameter File   /u01/oracle/product/10.2/db_1/network/admin/listener.ora

Listener Log File         /u01/oracle/product/10.2/db_1/network/log/listener_rac1.log

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.191)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.180)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))

Services Summary...

Service "+ASM" has 1 instance(s).

  Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...

Service "+ASM_XPT" has 1 instance(s).

  Instance "+ASM1", status BLOCKED, has 1 handler(s) for this service...

Service "orcl" has 2 instance(s).

  Instance "orcl1", status READY, has 2 handler(s) for this service...

  Instance "orcl2", status READY, has 1 handler(s) for this service...

Service "orclXDB" has 2 instance(s).

  Instance "orcl1", status READY, has 1 handler(s) for this service...

  Instance "orcl2", status READY, has 1 handler(s) for this service...

Service "orcl_XPT" has 2 instance(s).

  Instance "orcl1", status READY, has 2 handler(s) for this service...

  Instance "orcl2", status READY, has 1 handler(s) for this service...

The command completed successfully

 

 

SQL> show parameter remote_listener;

 

NAME                                 TYPE

------------------------------------ ---------------------------------

VALUE

------------------------------

remote_listener                      string

LISTENERS_ORCL

 

 

 

客户端配置:

1)         先手动按常规创建本地服务

Netca

 

clip_image002clip_image004clip_image006

 

输入第一个节点的VIP地址

clip_image008

 

clip_image010clip_image012clip_image014clip_image016clip_image018

 

 

2)         手动修改tnsnames.ora文件,将第2个节点的VIP 192.168.0.192也添加进去

D:\product\10.2.0\client_1\NETWORK\ADMIN

tnsnames.ora

修改前:

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.191)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

    )

  )

 

修改后:

ORCL =

  (DESCRIPTION =

    (FAILOVER = on)

    (LOAD_BALANCE = yes)

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.191)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.192)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = orcl)

      (FAILOVER_MODE=

          (TYPE = select)

          (METHOD = basic)

          (RETRIES = 180)

          (DELAY = 5)

      )

    )

  )

3)         测试连接

clip_image020

 

客户端会根据服务端的压力,新连接自动连接到压力小的节点上,实现负载均衡

clip_image022

 

 

4)         模拟主节点宕机

将主节点执行halt –q关机

clip_image023

 

过几分钟

clip_image025

 

 

clip_image026

 

 

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

ERROR:

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

 

解决ORA-12545连接失败问题

配置客户端的Hosts文件

通过在客户端的Hosts文件中加入对两个服务名的主机名字解析可以解决ORA-12545问题。

192.168.0.191 rac1

192.168.0.192 rac2

请使用浏览器的分享功能分享到微信等