设置:我有两个数据中心。在我的主站点 site1 中,我想部署一个 AlwaysOn 故障转移集群实例 (FCI)。在我的数据恢复站点 site2 中,我想部署一个单节点 SQL 实例。然后,我想使用 AlwaysOn 可用性组 (AG) 在站点 1 和站点 2 之间复制数据。
我阅读了很多博客文章和 TechNet 文章。我很清楚,具有 FCI 成员 [1] 的 AG 不支持自动故障转移。同样清楚的是,FCI 支持多个子网上的节点 [2]。显然,这是通过更新 DNS 中的虚拟网络名称 (VNN) 来实现的。
问题:AG 是否支持多个子网,还是我需要在站点 1 和站点 2 之间建立跨接子网?我无法找到任何明确说明这一点的来源。
参考资料:
[1] 故障转移群集和 AlwaysOn 可用性组 (SQL Server) http://msdn.microsoft.com/en-us/library/ff929171.aspx
[2] AlwaysOn 故障转移群集实例 (SQL Server) http://msdn.microsoft.com/en-us/library/ms189134.aspx
是的 AG 支持多个子网,如此处所述。还要确保您的数据提供程序支持MultiSubnetFailover .. .NET Framework 4 支持它。
要回答你的问题...
如果您使用 .NET 框架 4 或 3.5,那么提供程序将支持它,如此处所述。
此外,对SQL Server Multi-Subnet Clustering的一个很好的参考也有很好的记录。
对于旧版客户端库或第三方数据提供者,您不能在连接字符串中使用 MultiSubnetFailover 参数。为帮助确保您的客户端应用程序与 SQL Server 2012 中的多子网 FCI 一起以最佳方式工作,请尝试将客户端连接字符串中的连接超时调整为每个额外的 IP 地址 21 秒。这可确保客户端的重新连接尝试在能够循环访问多子网 FCI 中的所有 IP 地址之前不会超时。