AlwaysOn 可用性组入门

适用于:SQL Server

本主题将介绍一些步骤,包括用于配置 SQL Server 的实例以便支持 Always On 可用性组 的步骤,以及用于创建、管理和监视可用性组的步骤。

推荐阅读的主题

在创建您的第一个可用性组之前,我们建议您阅读以下主题:

配置 SQL Server 的实例以支持 Always On 可用性组

步骤 链接
启用 Always On 可用性组。 必须在参与某一可用性组的每个 Always On 可用性组 实例上都启用 SQL Server 功能。

先决条件:主计算机必须是 Windows Server 故障转移群集 (WSFC) 节点。

有关其他先决条件的信息,请参阅针对 AlwaysOn 可用性组的先决条件、限制和建议 (SQL Server) 中的“SQL Server 实例先决条件和限制”。
启用和禁用 AlwaysOn 可用性组
创建数据库镜像端点(如果没有)。 确保每个服务器实例都拥有 数据库镜像端点。 服务器实例使用此端点从其他服务器实例接收 Always On 可用性组 连接。 确定数据库镜像端点是否存在:
sys.database_mirroring_endpoints

对于 Windows 身份验证。 若要创建数据库镜像端点,请使用:

新建可用性组向导

Transact-SQL

SQL Server PowerShell

对于证书身份验证。 若要创建数据库镜像端点,请使用:Transact-SQL

创建和配置新的可用性组

步骤 链接
创建可用性组。 在承载要添加到可用性组的数据库的 SQL Server 实例上创建可用性组。

至少在创建可用性组的 SQL Server 实例上创建初始主副本。 您可以指定一到四个辅助副本。 有关可用性组和副本属性的信息,请参阅 CREATE AVAILABILITY GROUP (Transact-SQL)

强烈建议您创建 可用性组侦听器

先决条件:托管给定可用性组的可用性副本的 SQL Server 实例必须位于单个 WSFC 群集的单独节点上。 唯一的例外是在迁移到另一个 WSFC 群集时,此时一个可用性组可能会暂时跨两个群集。

有关其他先决条件的信息,请参阅针对 AlwaysOn 可用性组的先决条件、限制和建议 (SQL Server) 中的“可用性组先决条件和限制”、“可用性数据库先决条件和限制”和“SQL Server 实例先决条件和限制”。
若要创建一个可用性组,您可以使用以下任何工具:

新建可用性组向导

Transact-SQL

SQL Server PowerShell
将辅助副本联接到可用性组。 连接到正在承载某一辅助副本的各 SQL Server 实例上,并且将该本地辅助副本联接到可用性组。 将辅助副本联接到可用性组

提示:如果使用“新建可用性组”向导,此步骤将自动执行。
准备辅助数据库。 在正在承载辅助副本的每个服务器实例上,使用 RESTORE WITH NORECOVERY 还原主数据库的备份。 手动准备辅助数据库

提示:“新建可用性组”向导能够为你准备辅助数据库。 有关详细信息,请参阅选择初始数据同步页(Always On 可用性组向导)中的“使用完全初始数据同步的先决条件”。
将辅助数据库联接到可用性组。 在正在承载辅助副本的每个服务器实例上,将各本地辅助数据库联接到可用性组。 在联接可用性组后,给定辅助数据库将开始与相应的主数据库的数据同步。 将辅助数据库联接到可用性组

提示:如果每个辅助数据库均存在于各次要副本上,那么“新建可用性组”向导会执行此步骤。
创建可用性组侦听器。 除非在创建可用性组时已创建了可用性组侦听器,否则此步骤是必需的。 创建或配置可用性组侦听器 (SQL Server)
将侦听器的 DNS 主机名提供给应用程序开发人员。 开发人员需要在连接字符串中指定此 DNS 名称以对可用性组侦听器进行直接连接请求。 有关详细信息,请参阅可用性组侦听程序、客户端连接和应用程序故障转移 (SQL Server) 创建或配置可用性组侦听程序 (SQL Server) 中的“跟进:创建可用组侦听程序之后”
配置运行备份作业的位置。 如果要对辅助数据库执行备份,则必须创建一个备份作业脚本,该脚本将会考虑到自动备份首选项。 为承载可用性组的可用性副本的每个服务器实例上可用性组中的每个数据库都创建一个脚本。 配置可用性副本备份 (SQL Server) 的“跟进:配置次要副本备份之后”

管理可用性组、副本和数据库

注意

有关可用性组和副本属性的信息,请参阅 CREATE AVAILABILITY GROUP (Transact-SQL)

管理现有可用性组涉及以下一个或多个任务:

任务 链接
修改可用性组的 灵活的故障转移策略 ,以便控制导致自动故障转移的条件。 此策略仅适用于可进行自动故障转移的情况。 配置可用性组的灵活的故障转移策略
执行计划的手动故障转移或强制的手动故障转移(可能有数据丢失),通常称作“强制故障转移”。 有关详细信息,请参阅故障转移和故障转移模式(AlwaysOn 可用性组) 执行计划的手动故障转移

执行强制的手动故障转移
使用一组预定义策略,以便查看某一可用性组及其副本和数据库的运行状况。 使用基于策略的管理查看可用性组的运行状况

使用 Always On 组面板
添加或删除辅助副本。 添加辅助副本

删除辅助副本
挂起或恢复可用性数据库。 暂停某一辅助数据库会保持在其当前时间点,直到您恢复该数据库。 挂起数据库

恢复数据库
添加或删除数据库。 添加数据库

删除辅助数据库

删除主数据库
重新配置或创建可用性组侦听器。 创建或配置可用性组侦听器
删除可用性组。 删除可用性组
排除添加文件操作的问题。 如果主数据库和辅助数据库具有不同的文件路径,则此操作可能是必需的。 排除失败的添加文件操作的问题
更改可用性副本属性。 更改可用性模式

更改故障转移模式

配置备份优先级(以及自动备份首选项)

配置只读访问

配置只读路由

更改会话超时期限

监视可用性组

若要监视 AlwaysOn 可用性组的属性和状态,可以使用以下工具。

工具 简要说明 链接
SQL Server 的系统中心监视包 对于 IT 管理员,建议使用 SQL Server (SQLMP) 的监视包这一解决方案来监视可用性组、可用性副本和可用性数据库。 与 Always On 可用性组 尤为相关的监视功能包括:

可自动发现数百台计算机中的可用性组、可用性副本和可用性数据库。 这使您能够轻松地跟踪 Always On 可用性组 清单。

功能完善的 System Center Operations Manager (SCOM) 报警和票证。 这些功能提供了详细的知识,使您可以更快地解决问题。

使用基于策略的管理 (PBM) 对 AlwaysOn 运行状况监视进行自定义扩展。

从可用性数据库到可用性副本累积运行状况信息。

用于从 System Center Operations Manager 控制台中管理 Always On 可用性组 的自定义任务。
若要下载监视包 (SQLServerMP.msi) 和 用于 System Center Operations Manager 的 SQL Server 管理包指南 (SQLServerMPGuide.doc),请参阅:

SQL Server 的系统中心监视包
Transact-SQL Always On 可用性组 目录和动态管理视图提供了有关可用性组及其副本、数据库、侦听器和 WSFC 群集环境的大量信息。 监视可用性组 (Transact-SQL)
SQL Server Management Studio “对象资源管理器详细信息” 窗格显示有关您连接到的 SQL Server 实例所承载的可用性组的基本信息。

提示:使用此窗格可以选择多个可用性组、副本或数据库,并能对选定对象执行常规管理任务;例如,从可用性组中删除多个可用性副本或数据库。
使用“对象资源管理器详细信息”来监视可用性组
SQL Server Management Studio “属性” 对话框使您能够查看可用性组、副本或侦听器的属性,并在某些情况下可更改这些属性的值。 可用性组属性

可用性副本属性

可用性组侦听器属性
系统监视器 SQLServer:Availability Replica 性能对象包含性能计数器,可报告可用性副本的相关信息。 SQL Server,可用性副本
系统监视器 SQLServer:Database Replica 性能对象包含性能计数器,可报告给定次要副本上的辅助数据库的相关信息。

SQL Server 中的 SQLServer:Databases 对象包含用于监视事务日志活动(但不仅限于此)的性能计数器。 下列计数器特别适用于监视可用性数据库上的事务日志活动: 日志刷新写入时间(秒)日志刷新次数/秒日志池缓存未命中数/秒日志池磁盘读取次数/秒日志池请求数/秒
SQL Server - 数据库副本

SQL Server, Databases Object

相关内容

另请参阅

AlwaysOn 可用性组 (SQL Server)
AlwaysOn 可用性组概述 (SQL Server)
为 AlwaysOn 可用性组配置服务器实例 (SQL Server)
创建和配置可用性组 (SQL Server)
监视可用性组 (SQL Server)
AlwaysOn 可用性组的 Transact-SQL 语句概述 (SQL Server)
Always On 可用性组的 PowerShell Cmdlet 概述 (SQL Server)