Jdbc連接Oracle12C集群環境


jdbc.url=jdbc:Oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.31.0.1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.31.0.2)(PORT = 1521))(LOAD_BALANCE = ON)(FAILOVER =ON))(CONNECT_DATA = (SERVER = DEDICATED)(INSTANCE_ROLE = ANY)(FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC))(SERVICE_NAME = orcl)))

 

參數的含義:

LOAD_BALANE FAILOVER

ON ON 客戶端新建連接隨機嘗試ADDRESS_LIST中的監聽,直到連接到一個可用監聽,或者連完列表中的所有監聽,如沒有一個監聽可用,則返回錯誤信息

ON OFF 客戶端新建連接隨機嘗試ADDRESS_LIST中的任一監聽,無論這個監聽是否可用,如不可用直接返回錯誤。

OFF ON 客戶端新建連接按順序嘗試ADDRESS_LIST中的監聽,直到連接到一個可用監聽,或者連完列表中的所有監聽如沒有一個監聽可用,則返回錯誤信息

OFF OFF 客戶端新建連接僅連接ADDRESS_LIST中第一個監聽,無論這個監聽是否可用,如不可用直接返回錯誤。

對於已有連接的失敗切換,首先要求FAILOVER = ON,並且設置了FAILOVER_MODE

 

FAILOVER_MODE的子參數含義:

TYPE:1)session---如果用戶連接丟失,將創建一個新的會話連接到備用節點,用戶的所有未提交的操作必須回滾,然后再次執行,SELECT操作也被中止.

2)select---如果用戶連接丟失,將使用游標和之前的快照繼續執行SELECT操作,叫做SQL接管,SQL接管能夠無縫接管理的事務類型只有SELECT語句.其它的操作也必須要回滾然后再次執行.

3)none---客戶端默認值,禁止SQL接管功能,主要用於測試的目地,在實際應用中TYPE應指定為session或者select

METHOD:1)basic---僅僅在FAILOVER發生時才連接備用節點

2)preconnect---在用戶連接到主節點時同時也在備用節點產生一個連接會話,設置預連接模式,能夠快速接管SQL

RETRIES:當前節點失敗后,失敗切換功能會嘗試連接備用節點,這個值確定了嘗試的次數,如果僅DELAY被指定,RETRIES默認為5

DELAY:兩次嘗試之間等待的秒數,如果僅指定RETRIES,DELAY默認為1秒

BACKUP:指定另外一個用於備份連接的網絡服務名,當RAC設置為主次模式時,使用此參數,並且METHOD應該設為preconnect

RAC設置為主次模式時的tnsnames配置

無客戶端負載均衡(主次模式就不要客戶端負載均衡了),有透明應用切換且有預連接的tnsnames配置

instance_role  在下列情況使用:

1、你想明確指定連接到第一個實例還是第二個實例上去,默認是連接到第一個實例,主實例上。
2、你想使用taf預連接到第二實例上去。

The INSTANCE_ROLE 值有:
primary: 指定連接到 primary instance。
secondary: 指定連接到secondary instance,不直接接收連接,並不是指在客戶端不能連通這個服務命名,只不過這個連接會被路由到主節點,次要次點並不真正有連接連上去。
any: 可以連接到連接地址里的任何一個實例。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM