Jdbc Datagaurd выпуск
Я реализовал datagaurd в базе данных Oracle для обеспечения высокой доступности с двумя серверами и настроил параметры jdbc для подключения к серверу приложений Jboss, чтобы всегда подключать основной экземпляр базы данных.
Если я использую следующую строку:
<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>
Когда я выполняю переключение / переход, ip1 не работает, а ip2 работает. Если я сначала укажу ip2 в своем списке, то получу соединение (как я и ожидал, если бы просто попытался подключиться к ip2). Однако, когда я сначала ставлю ip1, я получаю ту же ошибку, как если бы я пытался подключиться напрямую к
java.util.concurrent.ExecutionException: java.lang.RuntimeException:
java.sql.SQLException: ORA-01033: ORACLE initialization or shutdown
in progress
1 ответ
Рекомендуемый URL-адрес подключения для Data Guard с RAC приведен ниже. Можете ли вы убедиться, что используете правильный 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)))