问题描述
嗨,
我必须实现一个HA DBMs系统。
为了允许客户端几乎为零的停机时间,生产 (主DB) 环境和灾难恢复 (备用DB) 应该具有相同的服务名称。
主数据库和备用数据库与活动数据保护同步,注册的服务如下:
-主数据库中的本地服务称为ha_prv
-备用数据库中的本地服务称为ha_prv
-称为dgtst_ha.dgpool.oradbcloud的全球数据库服务 (在包含brokerconfiguration的DGPOOL中的GSM下注册)。在gdsctl下,以以下方式定义了此全局数据库服务:
主服务器称为PRIMHOST,备用服务器为STBYHOST。
因此,这是以下tnsnames之间的区别:
我有某种方法,使用GDS,只定义一个VIP,以便直接给客户端一个主机名?
谢谢。
我必须实现一个HA DBMs系统。
为了允许客户端几乎为零的停机时间,生产 (主DB) 环境和灾难恢复 (备用DB) 应该具有相同的服务名称。
主数据库和备用数据库与活动数据保护同步,注册的服务如下:
-主数据库中的本地服务称为ha_prv
-备用数据库中的本地服务称为ha_prv
-称为dgtst_ha.dgpool.oradbcloud的全球数据库服务 (在包含brokerconfiguration的DGPOOL中的GSM下注册)。在gdsctl下,以以下方式定义了此全局数据库服务:
add service -service DGTST_HA -gdspool DGPOOL -preferred_all -failovermethod BASIC -failovertype SELECT -notification TRUE -role PRIMARY
主服务器称为PRIMHOST,备用服务器为STBYHOST。
因此,这是以下tnsnames之间的区别:
GSM_HA= (DESCRIPTION_LIST= (LOAD_BALANCE=off) (FAILOVER=on) (DESCRIPTION = (CONNECT_TIMEOUT=10)(RETRY_COUNT=3) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=PRIMHOST)(PORT=1571)) (ADDRESS=(PROTOCOL=tcp)(HOST=STBYHOST)(PORT=1572))) (CONNECT_DATA=(SERVICE_NAME = dgtst_ha.dgpool.oradbcloud)) ) )
HA_PRV= (DESCRIPTION_LIST= (LOAD_BALANCE=off) (FAILOVER=on) (DESCRIPTION = (CONNECT_TIMEOUT=10)(RETRY_COUNT=3) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=PRIMHOST)(PORT=1521)) (ADDRESS=(PROTOCOL=tcp)(HOST=STBYHOST)(PORT=1521))) (CONNECT_DATA=(SERVICE_NAME = ha_prv)) ) )
我有某种方法,使用GDS,只定义一个VIP,以便直接给客户端一个主机名?
谢谢。
专家解答
我个人认为GDS可能对您的设置有点过分,除非您计划针对数据保护节点运行应用程序的核心部分,但无论如何,不同之处在于您的GDS tnsnames指向GDS服务器,而不是您的数据库服务器。
所以你的第二个tnsnames通常是这样的:
GSM_HA =
(描述 _ 列表 =
(负载 _ 平衡 = 关闭)
(故障转移 = 开启)
(描述 =
(连接超时 = 10)(重试计数 = 3)
(地址列表 =
(地址 = (协议 = tcp)(HOST = gsmhost1)(端口 = 1571))
(地址 = (协议 = tcp)(HOST = gsmhost2)(端口 = 1572))
(连接数据 = (服务名称 = dgtst_ha.dgpool.oradbcloud))
)
)
您的GDS服务器与您的数据库是 * 不同 * 的机器。(GDS的重点是它位于数据库的 “外部”,因此它可以将流量引导到可用或最适合特定请求的那些数据库)。
然后,“dgtst_ha.dgpool.oradbcloud)” 可以是由不同数据中心中的1个或2个或 * 数十个 * 个不同数据库提供的服务,每个数据库都提供数据库的主要副本。
这里有一个很好的白皮书
https://www.oracle.com/technetwork/database/availability/maa-globaldataservices-3413211.pdf
我不确定是否需要GDS主机的VIP,因为它们是彼此的冗余副本,我们只是依次尝试。
所以你的第二个tnsnames通常是这样的:
GSM_HA =
(描述 _ 列表 =
(负载 _ 平衡 = 关闭)
(故障转移 = 开启)
(描述 =
(连接超时 = 10)(重试计数 = 3)
(地址列表 =
(地址 = (协议 = tcp)(HOST = gsmhost1)(端口 = 1571))
(地址 = (协议 = tcp)(HOST = gsmhost2)(端口 = 1572))
(连接数据 = (服务名称 = dgtst_ha.dgpool.oradbcloud))
)
)
您的GDS服务器与您的数据库是 * 不同 * 的机器。(GDS的重点是它位于数据库的 “外部”,因此它可以将流量引导到可用或最适合特定请求的那些数据库)。
然后,“dgtst_ha.dgpool.oradbcloud)” 可以是由不同数据中心中的1个或2个或 * 数十个 * 个不同数据库提供的服务,每个数据库都提供数据库的主要副本。
这里有一个很好的白皮书
https://www.oracle.com/technetwork/database/availability/maa-globaldataservices-3413211.pdf
我不确定是否需要GDS主机的VIP,因为它们是彼此的冗余副本,我们只是依次尝试。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




