我有一个基于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