【问题标题】:Database failover configuration in JBOSSJBOSS 中的数据库故障转移配置
【发布时间】:2023-03-06 02:07:01
【问题描述】:

我使用的是 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)))

注意:服务名只有一个

【问题讨论】:

    标签: database oracle jboss connection-string failover


    【解决方案1】:

    您必须创建一个通用的服务名称。

    例如,在数据库启动时自动运行触发器或动态执行 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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-27
      • 2015-05-22
      • 2018-03-15
      • 2010-11-06
      • 2014-02-21
      • 1970-01-01
      • 2011-06-24
      • 2016-05-01
      相关资源
      最近更新 更多