可用性组群集类型
通过名为故障转移群集的功能启用 Windows Server 中群集的内置可用性形式。 通过它,你可生成与 AG 或 FCI 一起使用的 WSFC。 由 SQL Server 提供的群集感知资源 DLL 进行 AG 和 FCI 的集成。
Linux 上的 SQL Server 支持多种群集技术。 Microsoft 支持 SQL Server 组件,而我们的合作伙伴则支持相关的群集技术。 例如,除 Pacemaker 以外,Linux 上的 SQL Server 还支持将 HPE Serviceguard 和 DH2i DxEnterprise 作为群集解决方案。
基于 Windows 的故障转移群集和 Linux 群集解决方案更相似,而不是不同。 两者都提供这样一种方式:使用多个单独的服务器,在配置中将它们合并,从而提供可用性;此外两者都具有资源、约束(尽管实施方式不同)、故障转移等概念。
例如,为支持 Pacemaker 的 AG 和 FCI 配置(包括自动故障转移等),Microsoft 为 Pacemaker 提供了 mssql-server-ha 包,它与 WSFC 中的资源 DLL 类似但不完全相同。 WSFC 和 Pacemaker 之间的区别之一是 Pacemaker 中没有网络名称资源,该组件有助于提取 WSFC 上的侦听器名称(或 FCI 名称)。 DNS 在 Linux 上提供名称解析。
由于群集堆栈有所不同,SQL Server 必须处理一些由 WSFC 本机处理的元数据,因此需要对 AG 进行一些更改。 一项此类重大更改是为可用性组引入了群集类型。 这存储在 cluster_type 和 cluster_type_desc 列的 sys.availability_groups 中。 有以下三种群集类型:
- WSFC
- 外部
- 无
要求高可用性的所有 AG 都必须使用基础群集,在 SQL Server 2017 (14.x) 和更高版本中则为 WSFC 或 Linux 群集代理。 对于使用基础 WSFC 的基于 Windows Server 的 AG,默认群集类型为 WSFC 且无需设置。 对于基于 Linux 的 AG,在创建 AG 时,群集类型必须设置为“外部”。 在创建 AG 后配置与 Linux 中的外部群集解决方案的集成,而在 WSFC 上,需在创建时进行集成。
Windows Server 和 Linux AG 都可使用“无”群集类型。 将群集类型设置为“无”,表示 AG 不需要基础群集。 这意味着 SQL Server 2017 (14.x) 是首个支持无群集 AG 的 SQL Server 版本,但其不利的一面是高可用性解决方案不支持此配置。




