0

当我尝试使用 JDBC 长 TNSNAME 样式 URL 连接数据库服务器时遇到问题。我们有两台 Oracle 集群服务器。这是我的 TNSNAME 样式 URL。

jdbc:oracle:thin:@(DESCRIPTION=
  (LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1250))
    (ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1250))
  )
  (CONNECT_DATA=
    (SERVICE_NAME= DEV1)
  )
)

我的问题是当我们的 DBA 创建数据库时,他为 host1 和 host2 使用了不同的服务名称。host1 是 DEV1,host2 是 DEV2_B,如果我切换主机序列,它似乎无法工作。喜欢

jdbc:oracle:thin:@(DESCRIPTION=
  (LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=
    (ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1250)) /*host2 now come first, it would be cause connect failure.*/
    (ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1250))
  )
  (CONNECT_DATA=
    (SERVICE_NAME= DEV1)
  )
)

我认为在这种情况下,故障转移和负载平衡是没有用的。我的问题是,如何在我的 URL 中单独设置 service_name?(这两个数据库也使用不同的 SID。DEVA 和 DEVB)请帮忙,谢谢。

4

1 回答 1

1
(DESCRIPTION_LIST=
            (FAILOVER=true)
            (LOAD_BALANCE=false)
            (DESCRIPTION=
            (ADDRESS= (PROTOCOL=TCP) (HOST=TEST_DB) (PORT=1521))
            (CONNECT_DATA=
            (SERVICE_NAME=saibal)))             
            (DESCRIPTION=
            (ADDRESS= (PROTOCOL=TCP) (HOST=MY_DB) (PORT=1521))
            (CONNECT_DATA=
            (SERVICE_NAME= test_saibal))
)
于 2016-08-31T22:26:12.070 回答