【发布时间】:2013-03-27 00:18:36
【问题描述】:
我有一个基于 Java 的服务器 (Tomcat),它使用 JDBC 连接连接到 Oracle 数据库。连接数据库有多种方式:SID、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 可以存在于一个或多个节点上。并且它还可以在节点之间移动
-
谢谢,很高兴知道。请参阅下面的评论。我们确实有 RAC。
-
如果您使用 RAC,那么您应该为每个节点指定主机名。见:stackoverflow.com/questions/13424385/…