關於Oracle的url連接最後一個orcl的理解
今天生產上項目啟動訪問 一個數據庫的時候,出現了
ORA-12505, TNS:listener does not currently know of SID given in connect desc .
後面看了下,我的數據庫配置為:
driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@158.58.88.102:1521:eskdb
username=root
password=aaa111
然後看了下oracle的 tnsnames.ora配置
eskdb=(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 158.58.88.102)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = eskdb)))
按網上所說的道理,
1、最後的orcl是數據庫名稱,我數據庫名稱就是eskdb,但是不對
2、最後的orcl是 service_name 但是配置的SERVICE_NAME 也是 eskdb
最後糾結無語,找數據庫DBA幫忙, DBA幫忙找到SID為 eskdb1 , 而且異常提示SID不對,於是更改url為
url=jdbc:oracle:thin:@158.58.88.102:1521:eskdb1
然後重啟項目,OK了
得出結論:數據庫url連接最後一個 orcl代表的是配置的數據庫 SID,而不是數據庫名 或者 SERVICE_NAME