当您的Always On群集丢失仲裁时该怎么办?


9

我正在查看我们公司的灾难恢复程序,当我在网上寻找“始终在线群集”丢失仲裁的解决方案时,可以进行比较。在搜寻结果的第一篇SE帖子之前,我在Google搜索结果中浏览了三页,该主题仅涉及群集丢失,仲裁丢失等主题。

尽管每个人都认为失败的仲裁人数是有害的,并且有一些建议可以降低这种潜力,但仍然有可能发生。我正在寻找一个很好的同行评审答案,以解决从Always On群集丢失仲裁中恢复的最佳方法。


如果尚未安装,建议您尝试使用Windows Server 2012 R2。动态定额,动态见证人和平局打破者功能使您可以在很多情况下实现“最后一人站立”。sqlha.com/2013/06/06/...
SQL锤

Answers:


11

AG基于Windows群集。WSFC的法定仲裁程序适用。

WSFC运行之后,您可以根据需要强制执行A​​G。对可用性组执行强制手动故障转移

在WSFC集群上强制仲裁(强制仲裁)之后,您需要强制对每个可用性组进行故障转移(可能会丢失数据)。由于WSFC群集值的真实状态可能已经丢失,因此需要强制故障转移。但是,如果能够在承载仲裁(在强制仲裁之前是主副本)的副本的服务器实例上强制进行故障转移,或者在强制仲裁之前已同步到辅助副本的服务器实例上进行故障转移,则可以避免数据丢失。有关更多信息,请参见强制仲裁后避免数据丢失的潜在方法


在没有集群的新AG设置中,这如何工作?还有法定人数吗?
Shaulinator

6

AlwaysOn群集丢失仲裁时该怎么办?

我曾经遇到过这种情况,尤其是跨不同国家(NY-LD-HK)的多子网群集。

如何避免多子网群集中的仲裁丢失?

  • 将此群集默认设置更改为更宽松的监视状态,尤其是使用此修补程序将或属性设置为“群集心跳”设置CrossSubnetDelayCrossSubnetThreshold
  • AG使用WSFC,而WSFC使用基于仲裁的方法来确定集群的运行状况。确保正确选择和配置仲裁。这篇博文深入探讨AlwaysON的Quorum投票配置
  • Windows Server 2016中发生了变化,引入了站点感知群集云见证

    现在,可以根据拉伸群集中的节点的物理位置(站点)对其进行分组。群集站点感知功能可增强群集生命周期中的关键操作,例如故障转移行为,放置策略,节点之间的心跳和仲裁行为。

    Cloud Witness是一种新型的故障转移群集仲裁见证,它利用Microsoft Azure作为仲裁点。它使用Microsoft Azure Blob存储读取/写入Blob文件,然后将其用作裂脑解决方案的仲裁点。

Quorum丢失时该怎么办?

  • 如果群集由于计划外的停机/灾难而停机,则需要手动干预。Windows管理员或群集管理员必须手动强制仲裁 (链接至@Remus的答案,因为这涵盖了这一点),并将尚存的节点置于联机状态。

与往常一样,要进行根本原因分析(RCA),请为AlwaysON RCA收集Windows群集日志-使用SQL Server故障转移群集诊断日志。SQL Server日志目录中的这些文件具有以下格式:<HOSTNAME>_<INSTANCENAME>_SQLDIAG_X_XXXXXXXXX.xel


0

一旦我陷入停电,我们的镜像服务器就会失去连接。担心的事情之一就是确保您的应用程序指向单个实例。在网络中断时,您可以使Always On群集的所有节点都建立起来,但无法相互通信。您可以强制将故障转移到辅助节点,然后只要发生中断,您就可以拥有两个主节点,因为原始主节点将不知道强制故障转移。

根据应用程序服务器的位置,它们的配置以及访问SQL Server的能力,理论上,您可以使两个节点认为它们是主要节点,并且可以同时更改数据。解决网络问题后,节点恢复连接,原始主节点上更改的所有数据将从强制执行故障转移的节点上覆盖。这可能会导致关键数据丢失。

我曾经在SQL 2005和镜像中看到过这种情况。我们决定不强行进行故障转移并使其无法到达。原因是在最坏的情况下,如果我们必须备份并还原以重新启动镜像,那么对于我们来说这将是一个2天的过程,存在事务日志变满且无法扩展其所在磁盘的风险。


Mirrroring和AlwaysOn是不同的。使用AlwaysOn,您应该(希望)指向一个具有MultiSubnetFailover = True的听众
James Jenkins,

我知道,但是有可能使服务器在地理位置上与网络中断分离,某些应用程序可以访问某些服务器,而其他应用程序则不能。并且有使用的Java驱动程序不支持MultiSubnetFailover = True。可能还有其他第三方应用程序。我见过有人拒绝为其配置连接字符串。即使这样,您也可以强制故障转移,而无需考虑具体情况,最终导致两个无法通信的可写服务器。由于应用程序可以跨站点进行通信,因此它们都可以同时写入。
艾伦(Alen)'18年

PS我见过一种情况,我们无法在不到一英里外的地方与主要站点进行通信,但与100英里外的DR站点之间的连接正常。
阿伦(Alen)'18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.