簡體   English   中英

使用群集類型主機時無法連接 oracle 數據庫

[英]Not able to connect oracle Database while using Cluster type HOST

我在連接 oracle 數據庫時遇到以下錯誤,我正在使用 spring 引導 JDBC 模板連接到數據庫。 錯誤如下,

Exception in thread "main" java.lang.Exception: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
    at com.falabella.util.OracleDB.main(OracleDB.java:70)
Caused by: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:392)
Caused by: java.net.UnknownHostException: NODE-01: nodename nor servname provided, or not known

下面是我的發現,我的數據庫服務器主機有集群,它有兩個節點,如下所示,

   Cluster (wood.clsuter.com)
     |  NODE01 (wood-01)
     |  NODE02 (wood-02)

我的連接字符串是這樣的,jdbc:oracle:thin:@wood-clsuter.com:1531/service_name

當我在連接字符串中使用集群名稱時,我遇到了以下錯誤

Caused by: java.net.UnknownHostException: wood-01: nodename nor servname provided, or not known

而如果我在連接字符串中使用任何節點名稱,能夠毫無問題地連接數據庫,則工作連接字符串如下所示, jdbc:oracle:thin:@wood-01.com:1531/service_namejdbc:oracle:thin:@wood-02.com:1531/service_name

由於我需要將我的數據庫請求用作負載平衡,因此我需要使用集群名稱而不是從屬節點,

我想知道這個問題的根本原因,比如生產環境問題,

你能幫我解決這個問題嗎?

您需要將連接字符串更改為:

"jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=ON)(LOAD_BALANCE=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=wood-01.com)(PORT = 1531))(ADDRESS = (PROTOCOL = TCP)(HOST = wood-02.com)(PORT = 1531)))(CONNECT_DATA=(SERVICE_NAME =service_name)(FAILOVER_MODE=(TYPE=select)(METHOD=basic))))"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM