什么是 Always On 可用性组?-概念篇(一)

科技   2024-11-14 09:30   河南  

点击蓝色字关注“SQL数据库运维”,回复“SQL”获取2TB学习资源!

适用于:SQL Server

本文介绍用于在 SQL Server 的 Enterprise 版本中配置和管理一个或多个可用性组的核心 Always On 可用性组概念。

Always On 可用性组 功能是一个提供替代数据库镜像的企业级方案的高可用性和灾难恢复解决方案。Always On 可用性组可最大程度地提高一组用户数据库对企业的可用性。“可用性组”针对一组离散的用户数据库(称为“可用性数据库”,它们共同实现故障转移)支持故障转移环境。一个可用性组支持一组读写主数据库以及一至八组对应的辅助数据库。(可选)可使辅助数据库能进行只读访问和/或某些备份操作。

概述

可用性组支持的复制环境适用于一组离散用户数据库,称为“可用性数据库”。可以创建可用性组以实现高可用性 (HA) 或读取缩放。HA 可用性组是一组共同实现故障转移的数据库。读取缩放可用性组是一组复制到其他 SQL Server 实例以实现只读工作负荷的数据库。一个可用性组支持一组主数据库以及一至八组对应的辅助数据库。辅助数据库不是备份。应继续备份数据库及其事务日志。

每组可用性数据库都由一个“可用性副本”托管。存在两种类型的可用性副本:一个主要副本(托管主数据库)和一到八个次要副本(每个次要副本托管一组辅助数据库,并用作可用性组的潜在故障转移目标)。可用性组在可用性副本级别进行故障转移。可用性副本仅在数据库级别提供冗余(针对一个可用性组中的该组数据库)。故障转移不是由诸如因数据文件丢失或事务日志损坏而使数据库成为可疑数据库等数据库问题导致的。

主副本使主数据库可用于客户端的读写连接。主副本将每个主数据库的事务日志记录发送到每个辅助数据库。此过程(称为“数据同步”)在数据库级别运行。每个次要副本缓存事务日志记录(“硬化”日志),然后将它们应用到相应的辅助数据库。主数据库与每个连接的辅助数据库独立进行数据同步。因此,一个辅助数据库可以挂起或失败而不会影响其他辅助数据库,一个主数据库可以挂起或失败而不会影响其他主数据库。

或者,您可以配置一个或多个辅助副本以支持对辅助数据库进行只读访问,并且可以将任何辅助副本配置为允许对辅助数据库进行备份。

SQL Server 2017 引入了用于可用性组的两种不同的体系结构。“AlwaysOn 可用性组”提供高可用性、灾难恢复和读取缩放均衡。这些可用性组需要群集管理器。在 Windows 中,故障转移群集功能提供群集管理器。在 Linux 中可以使用 Pacemaker。另一个体系结构是“读取缩放可用性组”。读取缩放可用性组为只读工作负荷提供副本,但不提供高可用性。读取缩放可用性组中没有群集管理器,因为故障转移无法自动执行。

在 Windows 上为 HA 部署 Always On 可用性组时需要 Windows Server 故障转移群集 (WSFC)。给定可用性组的每个可用性副本必须位于相同 WSFC 的不同节点上。唯一的例外是在迁移到另一个 WSFC 群集时,此时一个可用性组可能会暂时跨两个群集。

HA 配置中会为创建的每个可用性组创建一个群集角色。WSFC 群集将监视此角色,以便评估主要副本的运行状况。针对 Always On 可用性组的仲裁基于 WSFC 群集中的所有节点,而与给定群集节点是否托管任何可用性副本无关。与数据库镜像相反,在 Always On 可用性组中没有见证服务器角色。

下图显示的是一个包含一个主要副本和四个次要副本的可用性组。支持最多八个次要副本,包括一个主要副本和四个同步提交次要副本。

术语和定义

点击关注“SQL数据库运维”,后台或浏览至公众号文章底部点击“发消息”回复关键字:进群,带你进入高手如云的技术交流群。后台回复关键字:SQL,获取学习资料。


动动小手点击加关注呦☟☟☟

SQL数据库运维
专注于SQL数据库相关领域,Oracle、MySQL、SQL Server、PostgreSQL、大数据,数据分析等相关技术内容的分享,关注回复「SQL」可免费获取海量学习资料,包含文档、视频及部分常用软件安装包和日常小工具等资源。
 最新文章