前面分别在用戶端配置過
負載均衡: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接管了連接配接,保證業務的正常運作。