天天看點

11g R2 RAC用戶端配置balance及TAF

前面分别在用戶端配置過

負載均衡:http://blog.csdn.net/dbcommando/article/details/7692034

TAF:       http://blog.csdn.net/dbcommando/article/details/7693249

現在實作在用戶端同時配置負載均衡和TAF。

service_name:racdb

1、在用戶端的tnsnames.ora檔案中添加如下内容:

racdb =
  (DESCRIPTION_LIST =
        (DESCRIPTION =
           (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.252.75)(PORT = 1521))
           )
           (CONNECT_DATA =
             (SERVICE_NAME = racdb)
             (INSTANCE_NAME = racdb1)
             (FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=4)(DELAY=1))
           )
        )
        (DESCRIPTION =
           (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.252.76)(PORT = 1521))
           )
           (CONNECT_DATA =
              (SERVICE_NAME = racdb)
              (INSTANCE_NAME = racdb2)
              (FAILOVER_MODE=(TYPE=select)(METHOD=basic)(RETRIES=4)(DELAY=1))
           )
        )
        (LOAD_BALANCE = yes)
  )
      

2、驗證負載均衡:

     打開第1個sqlplus

SQL> conn terry/[email protected]
已連接配接。
SQL> show parameter instance_name

NAME                 TYPE          VALUE
-------------------  ------------  ---------------
instance_name        string        racdb1
SQL>
      

       打開第2個sqlplus:

SQL> conn terry/[email protected]
已連接配接。
SQL> show parameter instance_name

NAME                 TYPE          VALUE
-------------------  ------------  ---------------
instance_name        string        racdb2
SQL>
      

      打第3個sqlplus:

SQL> conn terry/[email protected]
已連接配接。
SQL> show parameter instance_name

NAME                 TYPE          VALUE
-------------------  ------------  ---------------
instance_name        string        racdb2
SQL>
      

      打開第4個sqlplus :

SQL> conn terry/[email protected]
已連接配接。
SQL> show parameter instance_name

NAME                 TYPE          VALUE
-------------------  ------------  ---------------
instance_name        string        racdb1
SQL>
      

可以看出在兩個節點間根據空閑情況進行了近似輪巡的方式連接配接。

3、驗證TAF:

     根據上面的連接配接,其中兩個連接配接到了執行個體racdb1,有兩個連接配接到了執行個體racdb2,現将執行個體racdb2停掉。

[[email protected] ~]$ srvctl stop instance -d racdb -i racdb2 -o immediate
[[email protected] ~]$ srvctl status database -d racdb
Instance racdb1 is running on node rac121
Instance racdb2 is not running on node rac122
[[email protected] ~]$ 
      

 4、檢視連接配接到執行個體racdb2的連接配接的情況  :

SQL>conn terry/[email protected]
已連接配接。
SQL> show parameter instance_name


NAME             TYPE           VALUE
--------------   ------------   ---------
instance_name    string         racdb2
SQL> show parameter instance_name

NAME             TYPE           VALUE
--------------   ------------  ----------
instance_name    string        racdb1
SQL> select sid from v$mystat where rownum=1;
       SID
----------
        85
SQL>
      

         另一個連接配接到racdb2執行個體的節點:

SQL>conn terry/[email protected]
已連接配接。
SQL> show parameter instance_name

NAME             TYPE           VALUE
--------------   ------------   ---------
instance_name    string         racdb2
SQL> show parameter instance_name

NAME             TYPE           VALUE
--------------   ------------  ----------
instance_name    string        racdb1
SQL> select sid from v$mystat where rownum=1;

       SID
----------
        100

SQL>
      

很顯然,執行個體racdb2出問題的情況下,執行個體racdb1接管了連接配接,保證業務的正常運作。