AlwaysOn AG 与 FCI

Bre*_*ias 6 sql-server clustering high-availability availability-groups azure

AlwaysOn 可用性组(AG) 和AlwaysOn 故障转移群集实例(FCI) 的整个 MS 文档中,我看到以下模式:

  1. FCI 适用于 HA 场景。
  2. 与主副本位于同一位置的 AG 同步辅助副本适用于 HA 方案。
  3. 位于不同数据中心的 AG 异步辅助副本用于 DR 场景。

这是讨论此问题示例 MS 链接

由于选项 #1 和 #2 都适用于 HA 方案,我该如何在它们之间做出决定?如果 MS 发布了 #1 和 #2 的成本和 RPO/RTO 指标,就很容易决定我想要哪个。

或者也许有一种不同的方式来理解这些选项之间的投资回报率差异。例如,也许选项 #2 最适合 VLDB,而选项 #1 最适合非常高的交易量。我不知道。

那么,DBA 用于在选项 #1 和 #2 之间进行选择的选择标准是什么?

更复杂的是,我知道选项 #1 和 #2 可以结合使用!什么时候结合这两种选择是明智的?什么时候结合这两个选项毫无意义?我知道当这些选项组合在一起时,AG 不再支持自动故障转移。这是有趣的琐事,但没有回答我的问题。

顺便说一下,我打算将我的最终解决方案供应到 Azure IaaS。如果我使用 Always On FCI,我可能会使用 Storage Spaces Direct (S2D) 创建准 SAN。

更新

我找到了两篇文章进行了比较。第一个是MS 文档,另一个是选择合适的可用性技术。两者都有这样的图表:

??????????????????????????????????????????????????????????
? FCI                         ? AG                       ?
??????????????????????????????????????????????????????????
?  * Server Level             ?  * Database Level        ?
??????????????????????????????????????????????????????????
?  * Requires shared storage  ?  * Uses direct           ?
?     (SAN or Storage Spaces  ?     attached storage     ?
?     Direct)                 ?                          ?
??????????????????????????????????????????????????????????
?  * RTO from 30              ?  * RTO typically less    ?
?     seconds to 20 minutes.  ?     than 30 seconds      ?
??????????????????????????????????????????????????????????
?  * RPO: no data loss.       ?  * RPO: ???              ?
??????????????????????????????????????????????????????????
?  * Only Passive Secondaries ?  * Active or Passive     ?
?                             ?     Secondaries          ?
??????????????????????????????????????????????????????????
?  * One SQL Server           ?  * Multiple SQL Server   ?
?     instance/license        ?     instances / licenses ?
??????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

文章没有评论 AG RPO,但我在别处读到从同步辅助副本恢复时没有数据丢失。我不知道这是否属实,也不知道异步辅助副本的 RPO 可能是多少。在 Azure 中有一个 AG 资源,需要使用 AG 创建两个域控制器(无论您是否有自己的域控制器)。我不知道 Azure FCI 是否也有同样严厉的要求。

最重要的是 - 我仍然不知道为什么将这两种技术结合起来很有价值。我只读到它“改进”或“最大化”可用性。这是 IMO 的模糊声明。

更多琐事:我还发现了一个讨论,建议应该避免两个节点的 FCI

小智 5

总的来说,由于上面已经提到的各种原因,FCI 比 AG 更有利。当然,2 节点 FCI 非常棒,但不应直接构建在存储空间之上,因为众所周知,S2D 在少于 4 个节点的部署中存在问题(来源)。

对于 Azure,我宁愿坚持使用旨在在 2 或 3 个节点场景中工作的 VSAN,例如(示例)。

这里有更多关于 FCI 与 AG 的信息,您可能也会觉得有用


Mas*_*him 4

对于 HA 目的,这取决于每个客户的要求和需要,以了解两个选项(选项 1 和 2)中哪一个是更好的选项。下面提供了通常检查的各种标准:

\n\n

如果是标准版本,那么您需要使用 FCI(选项 1)。

\n\n

如果满足以下所有条件,请选择 AG(同步 - 选项 2):

\n\n
    \n
  • 拥有 SQL Server 企业版(自 SQL Server 2016 起,Basic AG 也可在标准版中使用)
  • \n
  • 您需要并拥有存储容量来存储数据库文件的多个副本,\n以提高安全级别。存储是 FCI 中的单点故障,因为它只有一组数据文件,而 AG 中有多个数据文件。
  • \n
  • 检查网络和磁盘延迟,看看从服务器 A 的磁盘到服务器 B 的磁盘的总延迟是否在应用程序可接受的标准范围内,因为事务只有在辅助 (B) 服务器上提交后才会返回到应用程序。
  • \n
  • 请记住,服务器级别对象不会自动从服务器 A 同步到服务器 B,因为系统数据库未同步。因此,您可以手动保持参与服务器之间的所有服务器级别对象同步,或者部署一个自动化解决方案,该解决方案将在两台服务器之间保持同步此类服务器级别对象。
  • \n
  • 你有足够的专业知识来处理 AG 的运营问题。AG 比 FCI 复杂得多,因此您需要准备好解决 AG 引起的任何问题,尤其是性能问题。
  • \n
\n\n

或者

\n\n

如果您需要将报告查询(或备份)卸载到辅助服务器上以减少主实例上的负载,请使用 AG。

\n\n

I\xe2\x80\x99d 组合(1 和 3)或(2 和 3)用于 HA 和 DR 目的,其中 1 或 2 将提供 HA 解决方案,3 将是 DR 解决方案。因此,最好结合 1&3 或 2&3 来实现完整的 HA 和 DR 策略。

\n\n

但我不确定结合 1 和 2 是否有任何好处。

\n