gpt4 book ai didi

database - 我能否使用 JDBC 驱动程序将应用程序故障转移到正确的 Oracle 数据库实例(Data Guard,而非 RAC 集群)

转载 作者:搜寻专家 更新时间:2023-10-30 20:34:14 25 4
gpt4 key购买 nike

我能否使用驱动程序将应用程序故障转移到正确的 Oracle 数据库实例(Data Guard,而非 RAC 集群)

文档似乎建议我可以使用 RAC 集群,但我不确定是否可以使用 Data Guard 主实例和备用实例。我想这样做是为了避免唱 GSLB

但是我没有 RAC,我有一个 Data Guard 主实例和备用实例。我可以为此使用 JDBC 驱动程序吗?

最佳答案

我们在以下配置中使用 DataGuard。jdbc 的连接字符串。

  (DESCRIPTION =
(FAILOVER=ON)
(LOAD_BALANCE=off)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.xx.yyy.88)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.xx.yyy.89)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = D88.XXX.YYY.ZZZ)
(FAILOVER_MODE=(TYPE=select)(METHOD=basic))
(SERVER = DEDICATED)
)
)

当数据库以主模式启动时,触发器会创建一个服务。客户端通过服务名称连接,服务名称是在数据库启动时在触发器中创建的,而不是通过默认数据库名称或服务。

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=''d88.XXX.YYY.ZZZ'' scope=memory'; END IF;

END;

关于database - 我能否使用 JDBC 驱动程序将应用程序故障转移到正确的 Oracle 数据库实例(Data Guard,而非 RAC 集群),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com