SQL Server 多子网群集 (SQL Server)
适用于:SQL Server
SQL Server 多子网故障转移群集是一种配置,其中,每个故障转移群集节点都连接到其他子网或其他子网组。 这些子网可位于同一位置或在地理上分散的地点中。 跨地理上分散的站点进行群集有时称为拉伸群集。 因为没有所有节点都可以访问的共享存储,所以在多个子网上的数据存储之间应该复制数据。 对于数据复制,有多个可用数据的副本。 因此,多子网故障转移群集除了具备高可用性之外,还提供了灾难恢复解决方案。
SQL Server 多子网故障转移群集(两个节点,两个子网)
下图表示 SQL Server中的一个两节点、两子网的故障转移群集实例 (FCI)。
多子网故障转移群集实例配置
以下是使用多个子网的 SQL Server FCI 的一些示例:
SQL Server FCI SQLCLUST1 包括 Node1 和 Node2。 节点 1 连接到 Subnet1。 Node2 连接到 Subnet2。 SQL Server 安装程序将此配置视作一个多子网群集,并且将 IP 地址资源依赖关系设置为 OR。
SQL Server FCI SQLCLUST1 包括 Node1、Node2 和 Node3。 Node1 和 Node2 连接到 Subnet1。 Node3 连接到 Subnet2。 SQL Server 安装程序将此配置视作一个多子网群集,并且将 IP 地址资源依赖关系设置为 OR。 因为 Node1 和 Node2 位于同一子网上,所以此配置还提供本地高可用性。
SQL Server FCI SQLCLUST1 包括 Node1 和 Node2。 Node1 位于 Subnet1 上。 Node2 位于 Subnet1 和 Subnet2 上。 SQL Server 安装程序将此配置视作一个多子网群集,并且将 IP 地址资源依赖关系设置为 OR。
SQL Server FCI SQLCLUST1 包括 Node1 和 Node2。 Node1 连接到 Subnet1 和 Subnet2。 Node2 也连接到 Subnet1 和 Subnet2。 安装程序将 IP 地址资源依赖关系设置为 AND SQL Server 。
备注
此配置不视作多子网故障转移群集配置,因为群集的节点位于同一组子网中。
IP 地址资源注意事项
在一个多子网故障转移群集配置中,IP 地址不由该故障转移群集中的所有节点所拥有,并且在 SQL Server 启动期间可能不是全都处于联机状态。 从 SQL Server 2012 (11.x)开始,您可以将 IP 地址资源依赖关系设置为 OR。 这使得 SQL Server 可以在存在至少一个它可以绑定到的有效 IP 地址时处于联机状态。
备注
- 在早于 SQL Server 的 SQL Server 2012 (11.x)版本中,在多站点群集配置中使用了拉伸 V-LAN 技术,以便为跨站点的故障转移公开单个 IP 地址。 通过 SQL Server 跨不同子网对节点建立群集的新功能,您现在无需实现拉伸 V-LAN 技术,便可以跨多个站点配置 SQL Server 故障转移群集。
IP 地址资源 OR 依赖关系注意事项
如果您将 IP 地址资源依赖关系设置为 OR,则可能要考虑以下故障转移行为:
在当前拥有 SQL Server 群集资源组的节点上的 IP 地址之一出现失败时,在该节点上有效的所有 IP 地址都失败前,将不自动触发故障转移。
当发生故障转移时,如果 SQL Server 可以绑定到在当前节点上有效的至少一个 IP 地址,则它将进入联机状态。 在启动时未绑定到 SQL Server 的 IP 地址将在错误日志中列出。
并行安装 SQL Server FCI 与 SQL Server 数据库引擎的独立实例时,请注意避免 IP 地址上的 TCP 端口号冲突。 当 数据库引擎 的两个实例都配置为使用默认 TCP 端口 (1433) 时,通常会发生冲突。 要避免冲突,请将一个实例配置为使用非默认的固定端口。 在独立实例上配置固定端口通常是最简单的。 若将 数据库引擎 配置为使用不同的端口,则在 SQL Server FCI 未能连接到备用节点时,将防止出现会阻止实例启动的意外 IP 地址/TCP 端口冲突。
故障转移期间的客户端恢复延迟
默认情况下,多子网 FCI 会针对其网络名称启用 RegisterAllProvidersIP 群集资源。 在多子网配置中,将在 DNS 服务器上注册网络名称的联机和脱机 IP 地址。 之后,客户端应用程序会从 DNS 服务器检索所有已注册的 IP 地址,并尝试按顺序或并行连接到这些地址。 这意味着,多子网故障转移中的客户端恢复时间不再依赖 DNS 更新延迟。 默认情况下,客户端会按顺序尝试 IP 地址。 当客户端在其连接字符串中使用新的可选 MultiSubnetFailover=True 参数时,它将改为同时尝试 IP 地址并连接到第一台响应的服务器。 这有助于在发生故障转移时最大程度地减少客户端恢复延迟。 有关详细信息,请参阅 AlwaysOn 客户端连接 (SQL Server) 和 创建或配置可用性组侦听程序 (SQL Server)。
对于旧版客户端库或第三方数据访问接口,您不能在连接字符串中使用 MultiSubnetFailover 参数。 为了帮助确保您的客户端应用程序在 SQL Server中以最佳方式使用多子网 FCI,请尝试按照 21 秒的间隔为其他每个 IP 地址调整客户端连接字符串中的连接超时。 这将确保客户端的重新连接尝试在它能够循环访问多子网 FCI 中的所有 IP 地址之前不会超时。
SQL Server Management Studio 和 sqlcmd 的默认客户端连接超时期限为 15 秒。
备注
- 若要使用多个子网且有静态 DNS,必须先制定用于更新与侦听器关联的 DNS 记录的流程,再执行故障转移,否则网络名称将无法联机。
相关内容
内容说明 | 主题 |
---|---|
安装 SQL Server 故障转移群集 | 创建新的 SQL Server 故障转移群集(安装程序) |
您的现有 SQL Server 故障转移群集的就地升级 | 升级 SQL Server 故障转移群集实例(安装程序) |
维护您的现有 SQL Server 故障转移群集 | 在 SQL Server 故障转移群集中添加或删除节点(安装程序) |
使用“故障转移群集管理”管理单元来查看 WSFC 事件和日志 | 查看故障转移群集的事件和日志 |
使用 Windows PowerShell 为 WSFC 故障转移群集中的所有节点(或特定节点)创建日志文件 | Get-ClusterLog 故障转移群集 Cmdlet |