Oracle
Java 應用程序未在 Oracle 數據庫中使用透明應用程序故障轉移
我有一個客戶有一個 RAC 環境(2 個節點,數據庫版本是 11gR2)。
集群件版本:
[grid@server2 ~]$ crsctl query crs releaseversion Oracle High Availability Services release version on the local node is [11.2.0.4.0] [grid@server2 ~]$ crsctl query crs activeversion Oracle Clusterware active version on the cluster is [11.2.0.4.0]
他們的應用程序沒有正確使用 TAF(透明應用程序故障轉移)
經過一些研究,我使用swingbanch進行了測試,並且在我的 LAB 環境中發現了相同的行為:
INST_ID USERNAME SERVER SERVICE_NAME PROGRAM STATUS FAILOVER_TYPE FAILOVER_M FAI ---------- ---------- --------- -------------------- -------------------- -------- ------------- ---------- --- 1 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 1 SOE DEDICATED mootdb_prod sqlplus.exe INACTIVE SELECT BASIC NO 1 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 1 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 1 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 1 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 1 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO 2 SOE DEDICATED mootdb_prod JDBC Thin Client ACTIVE NONE NONE NO
使用上述 TAF 的唯一會話是從 sqlplus(failover_type 列)手動創建的會話。我在所有會話中使用相同的 tnsnames 別名。
為什麼會這樣。應用程序方面是否也有一些要求才能正常工作?
輸出顯示您的會話使用無法使用 TAF 的“瘦”驅動程序(JDBC 瘦客戶端)。
透明應用程序故障轉移 (TAF) 是 Java 數據庫連接 (JDBC) Oracle 呼叫介面 (OCI) 驅動程序的一項功能。
有時 JDBC OCI 驅動程序也稱為“Thick”驅動程序。
這是關於此主題的部落格系列:
https://blog.yannickjaquier.com/oracle/jdbc-client-high-availability-features-part-1.html
第 2 部分是關於 TAF:
https://blog.yannickjaquier.com/oracle/jdbc-failover-highly-available-part-2.html
確保將 swingbench 配置為使用
oci
驅動程序類型。它有-dt oci
命令行選項。還要確保使用正確的連接字元串和故障轉移選項和地址。