Java連接Oracle的兩種方式--單實例和RAC

概述

經常:碰到JAVA Spring配置數據庫連接後連接不上,但是PLSQL連接正常,這種情況下經常選擇將TNS直接配置到Tomcat的JNDI中來解決問題,但是配置在tomcat中對於多個項目交叉不好維護,特來提供有效的簡單的處理方式。
兩種連接方式

關鍵說明

數據庫的部署有單實例和RAC的情況,單實例比較簡單,使用SID連接;RAC 有多個實例來增加併發和負載,RAC時TNS一般配置的是Server Name,RAC節點根據Server情況自動跳到合適的SID。對於RAC的情況,有各自的實例,此時連接數據庫可以找到RAC下的SID,選擇其中的一個單獨的SID進行連接,也可以直接改變連接方式使用RAC的連接方式進行連接。

連接方法

  • 單實例:

直接配置實例名連接
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.1.10:1521:sid
jdbc.username=rim_ts
jdbc.password=11

  • RAC實例連接:

如果是RAC,則先連接PLSQL,找到SID,再將SID配置:

—查詢SID語句:
select instance_name from v$instance;

查詢SID

  • RAC Server連接:

RAC最合理的方式是ServerName連接方式
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@//192.168.1.10:1521/sname
jdbc.username=rim_ts
jdbc.password=11

  • TNS 方式連接:

除了上面的方式還可以採用TNS串來進行類PLSQL的連接
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = sname)))
jdbc.username=rim_ts
jdbc.password=11

技巧總結:對於Java應用配置數據源,可以不管數據庫單實例還是RAC,先用jdbc:oracle:thin:@192.168.1.10:1521:sid方式,如果不行就用jdbc:oracle:thin:@//192.168.1.10:1521/sname方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章