使用具有 SQL 独立实例的两个节点实现 AlwaysOn 自动故障转移

使用具有 SQL 独立实例的两个节点实现 AlwaysOn 自动故障转移

我们正在为我们的 Web 环境构建一个新的 SQL 2012 集群。我们决定使用两个节点并利用 AlwaysOn 可用性组来实现高可用性。Server01 和 Server02 已安装 SQL 的独立实例,并且都已加入 Cluster01。已创建可用性组。Server01 和 Server02 是可用性组中的节点,并配置为同步提交副本。

但是前几天我注意到,当 Server01 需要重新启动以进行修补时,整个集群都瘫痪了。当我在 Server02 上打开 Windows 故障转移群集管理 mmc 时,我看到集群已关闭,需要在 Server02 上重新启动服务(不确定这是否与我们最终想要实现的目标有关)。我在 Server02 上打开 SQL Management Studio,可用性组显示正在解析状态(并不表示 Server02 已成为主节点)。如果我展开 SSMS 中的数据库部分,它会显示数据库处于恢复挂起状态。如果我尝试展开其中一个数据库(不是系统数据库,即主数据库、模型数据库等),我会收到以下错误:

错误:

无法访问数据库 SiteAdmin。(ObjectExplorer)

当我在 SSMS 中展开“可用性组”然后展开“副本”时,我只看到列出的 Server02。Server01 重新启动后,我在服务器上本地打开 Windows 故障转移群集管理。Server01 显示它正在尝试连接到群集。但是 Server02 显示群集仍处于关闭状态。不过我仍然需要在两个节点上手动启动群集服务。完成此操作后,可用性组重新联机,显示 Server02 仍为辅助节点。

看到此信息后,我检查了 Cluster01 的当前仲裁设置。当前设置为“节点多数”,这表明,在我们拥有的两个节点配置下,它无法承受哪怕一个节点的丢失。我相信,如果我们建立第三个服务器和另一个独立的 SQL 实例,那么节点多数将起作用。但是,我们没有资源。基于这些设置,我认为我们需要更改群集的仲裁设置,但不确定 AlwaysOn 是否支持使用磁盘或文件共享见证进行自动故障转移。

答案1

您可以使用磁盘或文件共享,它都可以正常工作。第三台机器(甚至是虚拟机)也可以正常工作。

相关内容