JBOSS中的数据库故障转移配置

时间:2018-08-09 01:09:06

标签: database oracle jboss connection-string failover

我正在使用EAP 6.4.0版本。 我正在尝试进行数据库故障转移配置

以下是连接网址

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=database1.com)(PORT=1515)))(CONNECT_DATA=(SERVICE_NAME=service-1)))

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=database2.com)(PORT=1515)))(CONNECT_DATA=(SERVICE_NAME=service-2)))

注意:我有两个不同的服务名称

如何添加故障转移配置(具有两个不同的服务名称)?

无论我指的是什么,这都是我要得到的模式

jdbc:oracle:thin:@(DESCRIPTION=(CONNECT_TIMEOUT=10)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=OFF)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=database1.com)(PORT=1535))(ADDRESS=(PROTOCOL=TCP)(HOST=database2.com)(PORT=1535)))(CONNECT_DATA=(SERVICE_NAME=common_service_name)))

注意:只有一个服务名称

1 个答案:

答案 0 :(得分:0)

您必须创建一个公共服务名称。

例如,数据库启动时会自动运行触发器或动态执行SQL查询。

alter system set service_names='common_service_name' scope=memory

CREATE OR REPLACE TRIGGER sys.set_svc_name
 AFTER
  STARTUP
 ON DATABASE
DECLARE role VARCHAR(30);
BEGIN

SELECT Database_Role
INTO Role
FROM V$database;
IF Role = 'PRIMARY' THEN
EXECUTE IMMEDIATE 'alter system set service_names=''common_service_name'' scope=memory'; END IF;

END;