RAC环境做好后,我们来简单的测试一下RAC环境的负载均衡和容灾功能

一、测试RAC环境的负载均衡功能

节点1切换到oracle用户,


SQL> select INST_ID,username,sid,serial# from gv$session where username='XIA';

no rows selected

SQL>


用win7安装的客户端连接,该客户端tnsnames.ora配置:


# tnsnames.ora Network Configuration File: d:\app\Administrator\product\11.2.0\client_1\network\admin\tnsnames.or

a

# Generated by Oracle configuration tools.

RACSCAN =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.75.30)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = racdb)
   )
 )



C:\>sqlplus xia/aa123456@racscan

SQL*Plus: Release 11.2.0.1.0 Production on 星期二 5月 14 08:54:33 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Data Mining and Real Application Testing options

在切换到节点1

SQL> select INST_ID,username,sid,serial# from gv$session where username='XIA';

  INST_ID USERNAME                              SID    SERIAL#
---------- ------------------------------ ---------- ----------
        2 XIA                                    57       4992

SQL>           //可以看到第一次登陆连接到第二个节点上了;


在切换到win7客户端在开一个窗口连接rac,在节点1查询,发现这次连接到节点1上面了;

SQL> select INST_ID,username,sid,serial# from gv$session where username='XIA';

  INST_ID USERNAME                              SID    SERIAL#
---------- ------------------------------ ---------- ----------
       1 XIA                                    51        788
        2 XIA                                    57       4992

 

在在win7上开一个窗口连接。发现又连接到节点1上了,

SQL> select INST_ID,username,sid,serial# from gv$session where username='XIA';

  INST_ID USERNAME                              SID    SERIAL#
---------- ------------------------------ ---------- ----------
        1 XIA                                    51        788
        1 XIA                                    53       1322
        2 XIA                                    57       4992
说明当用户连接到该rac时由scan自动选择把用户的连接分配到那个节点上,以达到负载均衡的目的;


二、测试RAC的容灾功能

1、切换到oracle用户关闭节点2的数据库实例(类似节点2服务器宕机了)


[oracle@node2 ~]$
[oracle@node2 ~]$ sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue May 14 08:58:36 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>


在切换到grid用户,查看数据库启动情况

[grid@node2 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    node1      
ora.FLASH.dg   ora....up.type ONLINE    ONLINE    node1      
ora.GRIDDG.dg  ora....up.type ONLINE    ONLINE    node1      
ora....ER.lsnr ora....er.type ONLINE    ONLINE    node1      
ora....N1.lsnr ora....er.type ONLINE    ONLINE    node2      
ora.asm        ora.asm.type   ONLINE    ONLINE    node1      
ora.eons       ora.eons.type  ONLINE    ONLINE    node1      
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE              
ora....network ora....rk.type ONLINE    ONLINE    node1      
ora....SM1.asm application    ONLINE    ONLINE    node1      
ora....E1.lsnr application    ONLINE    ONLINE    node1      
ora.node1.gsd  application    OFFLINE   OFFLINE              
ora.node1.ons  application    ONLINE    ONLINE    node1      
ora.node1.vip  ora....t1.type ONLINE    ONLINE    node1      
ora....SM2.asm application    ONLINE    ONLINE    node2      
ora....E2.lsnr application    ONLINE    ONLINE    node2      
ora.node2.gsd  application    OFFLINE   OFFLINE              
ora.node2.ons  application    ONLINE    ONLINE    node2      
ora.node2.vip  ora....t1.type ONLINE    ONLINE    node2      
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE              
ora.ons        ora.ons.type   ONLINE    ONLINE    node1      
ora.racdb.db   ora....se.type ONLINE    ONLINE    node1      
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    node2      
[grid@node2 ~]$
[grid@node2 ~]$
[grid@node2 ~]$ ps -ef |grep ora_
grid      9122  8641  0 08:59 pts/2    00:00:00 grep ora_


这时我们在用客户端来测试数据库的连接情况,先看一下之前连接的客户端情况

SQL> select INST_ID,username,sid,serial# from gv$session where username='XIA';

  INST_ID USERNAME                              SID    SERIAL#
---------- ------------------------------ ---------- ----------
        1 XIA                                    51        788
        1 XIA                                    53       1322


SID为57的节点2的连接就没有了;在看一下之前在节点2的客户端连接,结束了会话;

SQL> select * from dual;
select * from dual
                *
第 1 行出现错误:
ORA-03113: 通信通道的文件结尾
进程 ID: 8835
会话 ID: 57 序列号: 4992


重新登录;

SQL> select INST_ID,username,sid,serial# from gv$session where username='XIA';

  INST_ID USERNAME                              SID    SERIAL#
---------- ------------------------------ ---------- ----------
        1 XIA                                    33       1183
        1 XIA                                    51        788
        1 XIA                                    53       1322

发现客户端都连接到节点一上面了;