我有一個基於java的服務器(Tomcat),它使用JDBC連接來連接到Oracle數據庫。有多種連接數據庫的方法:SID,TNS名稱,服務名稱。在JDBC連接中使用TNS名稱和服務名稱之間的區別
我想了解是什麼每個這些連接的和這將是如果連接到集羣數據庫推薦的連接(SID,TNS,或服務)之間的差。這裏是我們對數據庫的TNS名稱:
MY_NICE_TNS_NAME.MY_COMPANY.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myhostname)(PORT = 1521))
(LOAD_BALANCE = YES)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MY_NICE_SERVICE_NAME.MY_COMPANY.COM)
(FAILOVER_MODE =
(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5)
)
)
)
謝謝!
只要只有一個主機名指定爲你實際上沒有任何區別。如果你連接到RAC(OPS)或DataGuard,那麼是的。 SID是唯一的,不可更改並以數字結尾。雖然SERVICE_NAME可以出現在一個或多個節點上。它也可以在節點之間移動 – ibre5041 2013-04-05 09:44:28
謝謝,很高興知道。看到我下面的評論。我們有一個RAC。 – 2013-04-06 12:03:55
如果您使用RAC,那麼您應該爲每個節點指定主機名。請參閱:http://stackoverflow.com/questions/13424385/oracle-connection-string-for-rac-environment – ibre5041 2013-04-06 17:59:57