1、Client-Side Connect Time Failover
1.1)在用戶端tnsname中配置了多個地址,用戶發起連接請求時,會先嚐試連接地址表中的第一個地址,如果這個連接嘗試失敗,則繼續嘗試使用第二個地址,直至連接成功或者遍歷了所有的地址。
1.2)這種Failover的特點是:在建立連接那一時刻起作用,一旦連接建立之後,節點出現故障都不會作處理,從而客戶端的表現就是會話斷開,用戶程序必須重新建立連接。
啓用該方法:在客戶端tnsname.ora中添加FAILOVER=ON條目,因爲這個參數默認值就是爲NO,所以即使客戶端不加該條目,也有這種Failover功能。
XFF_F = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.21)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521)) (LOAD_BALANCE = yes ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = devdb) ) ) |
2、TAF(Transparent Application Failover)
2.1)在連接建立以後、應用系統運行過程中,如果某個實例發生故障,連接到這個實例上的用戶會被自動遷移到其他的健康的實例上。對於應用程序而言,這個遷移過程是透明的,不需要用戶的介入,當然在遷移過程中,未提交的事物會回滾。
2.2)與Client-Side Connect Time Failover比較起來,就是多了FAILOVER_MODE這一配置項,該配置項包含4個子項目
2.2.1)METHOD:可選值有BASIC和PRECONNECT
BASIC是指在感知到節點故障時才創建到其他實例的連接
PRECONNECT是在最初建立連接時就同時建立到所有實例的連接,當發生故障時,立刻就可以切換到其他鏈路上。
2.2.2)TYPE:可選值有SESSION和SELECT
兩者的區別在於對select語句的處理,select表示如果發生故障遷移,正在執行的select語句將在新的節點上繼續返回後續結果集;而session表示重新執行該select查詢返回全部的結果。
2.2.3)DELAY表示重試間隔時間
2.2.4)RETRIES表示重試次數
XFF_T = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.21)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521)) (LOAD_BALANCE = yes ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = devdb) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) (RETRIES = 180) (DELAY = 5) ) ) ) |
3、Server-Side TAF
3.1)Server-Side TAF具有TAF的所有特點
3.2)這種TAF是在服務器上配置,不需要在客戶端進行相關配置,如果修改一個參數,不需要在所有的tns上修改,而只要修改服務器中的service即可
用戶有兩種角色可以選擇
PREFERRED:首選實例,會優先選擇擁有這個角色的實例提供服務
AVAILABLE:後備實例,當PREFERRED實例不可用時,纔會轉到AVAILABLE實例上
XFF_RAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.21)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))
(LOAD_BALANCE =
yes
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XFF)
)
)
轉自http://www.xifenfei.com/1395.html
rac TAF理解
http://blog.csdn.net/aqszhuaihuai/article/details/7182158