本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 Always On 可用性组
如果您使用的是 SQL Server 版本 2012 及更高版本的本机客户端库和.NET Framework 4.5 库,则可以使用 多子网故障转移 参数来更改连接行为。建议您将该参数设置为 TRUE
。这将使用 Always On 可用性组实现更快的故障转移。
注意
如果您的旧应用程序无法使用 多子网故障转移 参数,则可以在您的 SQL Server 实例前面放置一个网络负载均衡器。平衡器使用运行状况检查来确定哪个 SQL Server 数据库处于活动状态,并将流量发送到当前托管该数据库的实例。负载均衡器跨越一个或多个可用区。您可以使用专用端口(例如 59999)进行运行状况检查,然后修改集群组参数以响应该端口。这使您无需使用 多子网故障转移 参数即可将 SQL Server 故障转移时间缩短到大约一分钟。有关详细说明,请参阅博客文章 使用网络负载均衡器缩短 Amazon EC2 实例上 SQL Server 的故障转移时间
有两个设置会影响可用性组侦听器在 DNS 中注册的方式:RegisterAllProvidersIP 和 HostRecordTTL。
使用 Always On 可用性组时,将 RegisterAllProvidersIP 设置为 true
我们建议您将 RegisterAllProvidersIP 设置为 1
(true)。在创建可用性组侦听器时将 RegisterAllProvidersIP 设置为 1
时,该侦听器的所有 IP 地址都将在 DNS 中注册。当 RegisterAllProvidersIP 设置为 0
(false)时,只注册一个活动 IP。
在故障转移的情况下,当主副本从一个子网移动到另一个子网时,将取消注册旧 IP 地址,并注册新 IP 地址。当可用性组侦听器联机时,DNS 将使用新 IP 进行更新。但是,在当前缓存的条目到期之前,客户端系统不会将侦听器名称解析为新的 IP 地址。
使用 Always On 可用性组时,将 HostRecordTTL 设置为 60 或更低
HostRecordTTL 设置可控制缓存的 DNS 条目的生存时间 (TTL) 设置。默认值为 1200 秒。我们建议您将 HostRecordTTL 更改为更低的设置(60 秒或更短)。这会导致缓存的值更快地过期,因此在故障转移的情况下,客户端系统可以更快地解析新 IP。
禁用 Always On 集群组的自动故障恢复
确认 Windows 集群管理器中的 Always On 可用性组已禁用自动故障恢复。