我的 SQL Server 故障转移群集中有 2 个节点。我使用 SQL Server 2012 始终开启功能来实现高可用性。
问题是,当我的一个服务器出现故障时,自动故障转移不会发生!
如何启用自动故障转移?
答案1
如果没有发生故障转移,首先要检查的是 AlwaysOn 是否真的启用了。也许最简单的测试方法是在 SQL Management Studio 中查看 AlwaysOn 仪表板。您的可用性组 (AG) 应该至少有两个活动节点。这是否表明您的 AG 已同步?请注意,与以前的 HA 解决方案不同,SQL 服务应该始终在两台服务器上运行。
从仪表板,您可以使用故障转移向导请求立即进行故障转移。这会成功吗?以前的主节点是否会在合理的时间内针对当前流量正确重新同步?这显然是您想在几个小时后测试的事情。如果您没有至少一个显示为同步的节点,您需要先解决该问题以确保您不会丢失数据。
接下来,看看客户端。客户端应用程序必须使用 SQL Server Native Client 11.0(或更高版本)才能获得自动重新连接的能力。早期版本只会断开连接。
客户端连接到 AG 的侦听器也很重要。如果它们直接连接到一个服务器或另一个服务器,当发生故障转移时,它们将无法发现新活动的服务器。
请注意,AlwaysOn 不需要特殊的网络路由或 DNS 更改,而以前的一些解决方案则需要这些更改。客户端应始终具有通向所有 AG 节点的开放网络路径。侦听器将通知客户端在任何给定时间使用哪个节点。不要忘记在 SQL 客户端配置实用程序(开始 > 运行 > cliconfg.exe)中查找可能将流量引导到意外方向的别名。