将读扩展与 Always On 可用性组配合使用

适用于SQL Server

可用性组是一种全面的解决方案,赋予了 SQL Server 高可用性功能,并提供集成缩放解决方案。 在典型的数据库应用程序中,有多个客户端运行多种类型的工作负荷。 有时会由于资源限制出现瓶颈。

在可用性组的上下文中,读取扩展将读取工作负载卸载到一个或多个次要副本。 可以释放资源并增加 OLTP 工作负荷的吞吐量。 还可以在只读工作负载上实现更高的性能和扩展性。 利用 SQL Server 的最快复制技术,并创建一组复制数据库,分担对只读副本的报告和分析工作负荷。

利用可用性组,可将一个或多个次要副本配置为支持以只读方式访问辅助数据库。

运行分析或报告工作负荷的客户端应用程序可直接连接到辅助数据库。 还可以设置只读路由列表,并连接到主数据库。 随后以轮循方式将连接请求转发给路由列表中的每个次要副本。

无群集的读扩展可用性组

在 SQL Server 2016 (13.x) 及更早版本中,所有可用性组都需要群集。 群集用于提供业务连续性,实现高可用性和灾难恢复 (HADR)。 此外,配置次要副本以执行读取操作。 如果目标不是高可用性,配置和运行群集消耗了相当大的运营开销。 SQL Server 2017 (14.x) 引入了无需群集的读扩展可用性组。

注意

在不使用 Windows Server 故障转移群集 (WSFC) 的可用性组中(例如读取扩展可用性组或 Linux 上的可用性组),与群集关联的可用性组 DMV 中的列可能会显示有关内部默认群集的数据。 这些列仅供内部使用,可以忽略。

如果您的业务需求是为在主副本上运行的任务关键型工作负载节省资源,则可以使用只读路由,或直接连接到可读的次要副本。 您无需依赖与任何集群技术的集成。 Windows 和 Linux 平台上运行的 SQL Server 2017 (14.x) 支持这些新功能。

重要

这不是高可用配置。 没有用于监控并协调故障检测和自动故障转移的基础设施。 如果没有群集,SQL Server 无法提供自动化高可用性解决方案可提供的低恢复时间目标 (RTO)。 如果需要高可用性功能,请使用群集管理器(Windows 上的 Windows Server 故障转移群集或 Linux 上的 Pacemaker)。

读扩展可用性组可提供灾难恢复能力。 当只读副本处于同步提交模式时,可提供零恢复点目标 (RPO)。 要对读扩展可用性组进行故障转移,请参阅对读扩展可用性组上的主副本进行故障转移

使用分布式可用性组实现跨地域读取扩展

不同地理位置的解决方案可以使用分布式可用性组实现读取缩放解决方案。 您可以使用它们将读取工作负载从主副本卸载到位于更靠近读取工作负载源站点的可读辅助副本。 分布式可用性组降低了主要副本上的资源利用率。 还可以通过降低网络延迟和利用专用资源来改善读取吞吐量。

单个分布式可用性组最多可具有 17 个可读次要副本。 为了提高扩展能力,可以将多个可用性组以菊花链方式串联起来,从而进一步增加可读副本的数量。 还可以在同一可用性组中部署两个分布式可用性组,以在地理位置不同的环境中实现低延迟读取。