企業要求它們的企業應用程序有 99.99% 或者甚至 99.999% 的可用性是很常見的。考慮一下要確保全年不超過 0.5 小時的停機時間或者甚至沒有停機時間將花費多大的代價。為了回應這些大量的高可用性需求,企業正投資於在一個參與系統出現故障時能夠提供自動故障切換的機制。當考慮 Oracle 數據庫的可用性時,Oracle9i RAC 提供了一個擁有高級故障切換機制的優越的解決方案。
Oracle9i RAC 包含了全部在一個集群配置中工作並負責提供持續的可用性的所需組件—當集群中的一個參與系統出現故障時,用戶可以自動移植到其它的可用系統上。 Oracle9i RAC 的一個負責故障切換處理的主要組件是透明應用程序故障切換 (TAF) 選件。所有釋放連接的數據庫連接(和過程)都被重新連接到了集群中的另一個節點上。故障切換對用戶是完全透明的。
下面是通過JDBC實現的透明應用程序故障切換的代碼片斷
Class.forName("oracle.jdbc.driver.OracleDriver");
String url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST =(LOAD_BALANCE = yes)
(ADDRESS=(PROTO =TCP)(HOST=node1)(PORT=1521))(ADDRESS=(PROTO =TCP)(HOST=node2)(PORT=1521))
(ADDRESS=(PROTO =TCP)(HOST=node3)(PORT=1521))(ADDRESS=(PROTO =TCP)(HOST=node4)(PORT=1521))
(CONNECT_DATA =(SERVICE_NAME = oracleServerName)(failover_mode = (type = select)
(method = basic)(retries = 20)(delay = 15)))))";
String user="userName";
String password="userPassword";
conn= DriverManager.getConnection(url,user,password);