2016-04-02 54 views
0

我已经实现了在Oracle数据库datagaurd高 可用性有两台服务器,并配置了JDBC设置 连接Jboss应用服务器始终连接主数据库 实例。的jdbc datagaurd问题

如果我使用以下字符串:

<connection-url> 
jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=<ip1>)(PORT=<port>))(ADDRESS=(PROTOCOL=TCP)(HOST=<ip2>)(PORT=<port>)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME 
= MYDB)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))))</connection-url> 

在i执行的开关上/ filover的IP1是向下和IP2是向上。如果我在列表中首先指定ip2,那么我会得到一个连接(就像我期望的那样,如果我只是试图连接到ip2)。然而,当我把IP1首先我得到同样的错误,如果我试图直接与RAC连接

java.util.concurrent.ExecutionException: java.lang.RuntimeException: 
java.sql.SQLException: ORA-01033: ORACLE initialization or shutdown 
in progress 
+0

编辑您的问题,如果您有其他信息,请不要使用评论。 –

+0

这里有太多需要引用的内容,但是如果您要检查“数据库高可用性最佳实践”,则第10.1节将讨论配置JDBC客户端以实现自动故障转移。请参阅https://docs.oracle.com/database/121/HABPT/config_fcf.htm#HABPT4969 – EdStevens

+0

您是否使用Active Data Guard?如果不是,则待机可能处于安装模式。 – JSapkota

回答

0

推荐连接URL的Data Guard的下面,如图所示。你能确保你使用正确的连接URL吗?

jdbc:oracle:thin:@(DESCRIPTION = (FAILOVER=on) 
    (CONNECT_TIMEOUT= 15) (RETRY_COUNT=20) (RETRY_DELAY=3) 
     (ADDRESS_LIST = 
      (LOAD_BALANCE=on) 
      (ADDRESS = (PROTOCOL = TCP) (HOST=primary-scan) (PORT=1521))) 
     (ADDRESS_LIST = 
      (LOAD_BALANCE=on) 
      (ADDRESS = (PROTOCOL = TCP) (HOST=secondary-scan) (PORT=1521))) 
     (CONNECT_DATA= (SERVICE_NAME = gold-cloud-service-name)))