为 SharePoint Server 配置SQL Server Always On可用性组

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

本文提供了为 SharePoint Server 或 Foundation 场创建和配置 Microsoft SQL Server Always On Always On 可用性组所需的信息和详细过程。

重要

本文中的步骤展示了如何部署新的 SharePoint 场,并未涉及从 SQL Server 2008 R2 升级到较新版本的 SQL Server。

过程概述

我们建议按以下安装和配置步骤顺序操作,部署使用 Always On 可用性组的 SharePoint 场:

  • 选择或创建 Windows Server 故障转移群集。

  • 在每个群集节点上安装 SQL Server。

  • 创建并配置可用性组。

  • 安装和配置 SharePoint Server 或 SharePoint Foundation 2013。

  • 将 SharePoint 数据库添加到可用性组。

  • 对可用性组进行故障转移测试。

准备工作

开始部署之前,请先阅读以下信息,了解 SQL Server Always On、支持 Always On 的技术以及 SharePoint Server:

  • 知识和技能要求

  • Always On 可用性组概念

  • 硬件和软件要求

  • 权限

知识和技能要求

若要将 SQL Server Always On 可用性组实现为高可用性和灾难恢复解决方案,需要多种技术相互作用,且必须正确安装和配置这些技术。 我们建议负责为 SharePoint 产品 设置 Always On 环境的团队掌握以下技术的应用知识以及实践技能:

  • Windows Server 故障转移群集 (WSFC) 服务

  • SQL Server

  • SharePoint Server 或 SharePoint Foundation 2013

SQL Server Always On 可用性组概念

一个可用性组包含下列组件:

  • 副本是一组称为"可用性数据库"的不同用户数据库,以一个单元的形式进行整体故障转移。 SQL Server 2014 (SP1) 、SQL Server 2016 和 SQL Server 2017 中的每个可用性组都支持一个主要副本和最多八个次要副本。 SQL Server 2012 中的每个可用性组支持一个主要副本和最多四个次要副本。

  • 用于托管每个副本并维护属于可用性组的每个数据库的本地副本的 SQL Server 的指定实例。

有关详细信息,请参阅 Always On 可用性组 (SQL Server)Always On 可用性组概述 (SQL Server)

副本和故障转移

主副本使可用性数据库可用于来自客户端的读写连接以及将每个主数据库的事务日志记录发送到每个辅助副本。 每个辅助副本会将事务日志记录应用于其辅助数据库。

所有副本均可在异步提交模式下运行,或者最多有三个副本可以在同步提交模式下运行。 有关同步和异步提交模式的详细信息,请参阅可用性模式 (Always On可用性组)

注意

数据库因数据文件丢失、数据库删除或事务日志损坏而变得可疑等数据库问题不会引起故障转移。

请阅读下列文章,了解有关 SQL Server Always On 技术的重要概念:

重要

可以在 Windows Server 核心上安装SQL Server以提高安全性并减少维护,但不能在 Windows Server 核心上安装 SharePoint Server。 有关详细信息,请参阅 Server Core for Windows Server 2008 R2(Windows Server 2008 R2 的服务器核心)。 若要了解服务器核心和 Windows Server 2012,请参阅 Windows Server 安装选项

Windows Server 故障转移群集

若要创建和使用SQL Server Always On可用性组,必须在 Windows Server 故障转移群集 (WSFC) 群集上安装这两个 SQL Server 版本。 有关详细信息,请参阅使用 SQL Server 的 Windows Server 故障转移群集 (WSFC) ,对于SQL Server 2016 和 2017,Windows Server 故障转移群集 (WSFC) SQL Server

若要创建和使用SQL Server Always On可用性组,必须在 Windows Server 故障转移群集 (WSFC) 群集上安装SQL Server。

虽然配置 WSFC 群集不在本文范围之内,但您在安装和配置群集之前应了解下列要求:

  • 所有群集节点必须位于同一 Active Directory 域服务 (AD DS) 域内。

  • 可用性组中的每个可用性副本都必须驻留在同一 Windows Server 故障转移群集 (WSFC) 的不同节点上。

  • 群集创建者必须具有下列帐户和权限:

配置故障转移群集和 Always On 时非常重要的一步是,确定群集节点所需的仲裁投票。

故障转移群集基于一种投票算法,在此算法中,一半以上的投票者或仲裁必须联机并且相互之间能够通信。 由于给定群集具有特定数量的节点和特定仲裁配置,因此群集服务能够确定仲裁的构成。 如果投票者数量下降,达不到必需的多数,则所有节点上的群集服务都将停止。

有关详细信息,请参阅 WSFC 仲裁模式和投票配置 (SQL Server)配置群集仲裁 NodeWeight 设置

SharePoint Server 和 SharePoint Foundation 2013

一些 SharePoint Server 数据库不支持 SQL Server Always On 可用性组。 我们建议在配置 Always On 环境前先检查 SharePoint 数据库的受支持的高可用性和灾难恢复选项

为 SharePoint 配置 Always On 可用性组的详细步骤

下图展示了使用 SP_AG1 可用性组的 SharePoint Server 2016 场 (SPHA_farm)。 我们将在执行 Always On 配置步骤时使用 SPHA_farm 作为参考示例。

使用 AlwaysOn 可用性组的 SharePoint Server 场

准备 Windows Server 群集环境

访问或创建三节点 Windows Server 故障转移群集 (WSFC) 群集,可用于在每个群集节点上安装SQL Server。 有关配置 Windows Server 故障转移群集的信息和详细步骤,请参阅 故障转移群集

准备 SQL Server 环境

必须先准备 SQL Server 环境,然后才能为 SharePoint Server 创建可用性组。

准备数据库服务器环境时,必须注意 SharePoint Server 数据库要求。 安装 SQL Server 之前,请阅读下列文章:

若要准备环境,请完成下列任务:

  • 安装 SQL Server 必备组件。

  • 安装 SQL Server

  • 启用 Always On。

安装 SQL Server 2012

安装 SQL Server 2012 的具体步骤

  1. 在每个群集节点上安装 SQL Server 2012 必备组件。

    有关详细信息,请参阅 (SQL Server) Always On可用性组的先决条件、限制和建议

  2. 在每个群集节点上安装 SQL Server。

    有关详细信息,请参阅 SQL Server 2012 安装

安装 SQL Server 2014 (SP1)

请按以下过程操作来安装 SQL Server 2014 (SP1)。

安装 SQL Server 2014 (SP1) 的具体步骤

  1. 在每个群集节点上安装 SQL Server 2014 (SP1) 系统必备。

    有关详细信息,请参阅安装 SQL Server 2014 的硬件和软件要求Always On可用性组的先决条件、限制和建议 (SQL Server)

  2. 在每个群集节点上安装 SQL Server。

    有关详细信息,请参阅安装 SQL Server 2014 分步教程

安装 SQL Server 2016 或 SQL Server 2017

请按以下过程操作,安装 SQL Server 2016 或 SQL Server 2017。

安装 SQL Server 2016 或 SQL Server 2017

  1. 在每个群集节点上安装 SQL Server 必备组件。

    有关详细信息,请参阅安装 SQL Server

  2. 在每个群集节点上安装 SQL Server。

    有关详细信息,请参阅 SQL Server 故障转移群集安装

启用 Always On

必须为集群中的每个数据库服务器都启用 Always On。

注意

可使用 SQL Server Management Studio、Transact-SQL 或 Windows PowerShell 来启用 Always On。

启用 Always On

  1. 您的登录帐户必须具有创建可用性组的权限级别。 该帐户必须具有 db_owner 固定数据库角色的成员身份以及 CREATE AVAILABILITY GROUP 服务器权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

  2. 登录到将托管主副本的服务器,然后启动 SQL Server 配置管理器。

  3. 在“对象资源管理器”中,选择“SQL Server服务”,右键单击SQL Server (<实例名称>) ,其中<实例名称>是要为其启用Always On可用性组的本地服务器实例的名称,然后单击“属性”。

  4. 选择“Always On高可用性”选项卡。

  5. 选中“启用Always On可用性组”复选框,然后单击“确定”。

  6. 虽然保存了更改,但是您必须手动重新启动 SQL Server 服务 (MSSQLSERVER) 才能提交更改。 通过手动重新启动,您可以选择最适合您的业务需求的重新启动时间。

  7. 重复执行上述步骤,在其他群集节点上为 SQL Server 启用 Always On。

有关详细信息,请参阅启用和禁用Always On可用性组 (SQL Server)

创建和配置可用性组

可能需要在创建可用性组之前先创建一个临时数据库,具体视计划在其中创建可用性组的 SQL Server 2014 (SP1)、SQL Server 2016/2017 或 SQL Server 2012 环境而定。

可用性组的创建过程可能需要您为可用性组提供一个名称,然后在连接的服务器实例上选择一个合格的用户数据库作为可用性数据库。

注意

[!注意] 数据库必须是用户数据库,才能添加到可用性组。 系统数据库不能添加到可用性组。 有关详细信息,请参阅 (SQL Server) Always On可用性组的先决条件、限制和建议的“可用性数据库先决条件和限制”部分,以及 (SQL Server) 的可用性组的创建和配置

如果连接的服务器的实例上没有用户数据库(我们的示例就属于这种情况),则需要创建一个。 请按以下过程操作来创建临时用户数据库,作为可用性组的临时主要副本。

创建临时用户数据库

  1. 确保您的登录帐户具有此任务所需的正确权限。 您需要主数据库中的下列任一权限才能创建新的数据库:
  • CREATE DATABASE

  • CREATE ANY DATABASE

  • ALTER ANY DATABASE

  1. 登录将承载主副本的服务器,在我们的示例中,此服务器是 SP-SRV1。

  2. 启动 Management Studio。

  3. 在对象资源管理器中,右键单击“数据库”,然后单击“新建数据库”

  4. 在“新建数据库”对话框中,在“数据库名称:”文本框中键入内容,在此示例中,该名称为“TemporaryUserDB”。

    Because this is a temporary database that you delete after you create the availability group, you can use the default settings. 单击“确定”

    由于“新建可用性组向导”只有在备份用户数据库之后才会创建可用性组,因此您必须备份临时数据库。

  5. In Object Explorer expand Databases and right-click the temporary database that you just created. Pick Tasks and then choose Back Up.

  6. 在“备份数据库”对话框中,单击“确定”接受所有默认设置并创建备份。

关于副本和数据同步

在为 SharePoint 场创建和配置可用性组之前,应先阅读以下内容,熟悉副本和数据同步的概念。

关于副本

每个可用性副本都分配有一个初始角色(主角色或辅助角色),这是该副本的可用性数据库继承的角色。 给定副本的角色决定了副本是承载读写数据库还是只读数据库、故障转移的类型以及它是使用同步提交还是异步提交。

注意

在 SQL Server 2014 及更高版本中,次要副本的数量上限从 4 增加到 8。

下表显示的是当您首次创建可用性组时或添加辅助副本时,必须为每个副本提供的信息。

副本配置要求

副本信息 说明
服务器实例
显示将承载可用性副本的服务器实例的名称。
初始角色
指示新副本首先将履行的角色:主角色或辅助角色。
自动故障转移(最多为 2)
指示副本使用的故障转移类型:自动或手动。
同步提交(最多为 3)
指示副本使用的提交类型。
可读次要副本
指示辅助副本是否可读。
配置选项不可用于读取访问和只读目的。 有关详细信息,请参阅将只读工作负荷卸载到Always On可用性组的辅助副本为可用性组配置Read-Only路由 (SQL Server)
注意:在 SQL Server 2014 及更高版本中,当读取工作负载与主要副本断开连接时或在群集仲裁丢失期间,可读次要副本现在仍可用于读取工作负载。

注意

SharePoint Server 不使用只读副本。 它将仅利用可用性组中的主副本。

注意

[!注意] 向组添加副本时,还需要提供每个副本的终结点,并配置备份首选项。 有关详细信息,请参阅在添加或修改可用性副本时指定终结点 URL (SQL Server) 和活动辅助副本:在辅助副本上备份 (Always On可用性组)

数据同步

在可用性组创建过程中,必须对主要副本上的数据进行完整复制,并将副本安装到次要副本上。 这是可用性组的初始数据同步。 有关详细信息,请参阅选择初始数据同步页 (Always On可用性组向导)

网络共享必须存在并且必须可由 Always On 配置中的所有节点访问,然后才能在托管副本的所有群集节点之间执行初始数据同步。 有关详细信息,请参阅 网络共享扩展存储

使用“新建可用性组向导”启动数据同步时存在以下限制:

  • 如果辅助副本位置上的文件路径与主位置上的文件路径不同,则必须手动启动数据同步。

  • 如果辅助副本上存在任何辅助数据库,则必须手动删除辅助数据库,然后才能使用"新建可用性组向导"启动数据同步。 但是,如果要使用现有辅助数据库,则退出"新建可用性组向导",然后手动启动数据同步。

  • To use the availability group wizard to synchronize data, you have to have a backup share that all the replicas can write to. 可以通过浏览到共享,或者在“ 指定所有副本可访问的共享网络位置 ”框中输入其完全限定的通用命名约定 (UNC) 路径名称 \Systemname\ShareName\Path 来指定共享。

对于可用性组中的每个数据库,“启动数据同步”页都将显示下列操作的进度:

  • 在网络共享上创建主数据库的完整数据库备份。

  • 将这些备份还原到辅助副本位置。

    这些还原操作均使用 RESTORE WITH NORECOVERY 选项,并使新的辅助数据库保持 RESTORING 状态。

  • 将辅助数据库联接到可用性组。

    此步骤会使辅助数据库处于 ONLINE 状态并对此数据库启动数据同步。

登录名复制

使用早期版本的 SQL Server 中的相同方式创建的 SharePoint 登录名不能在可用性组中复制。 出现这种情况的原因是登录信息存储在 master 数据库中,该数据库未复制。 虽然同步副本时会创建服务器场帐户,但故障转移之后登录名信息便不再可用。

如果您已创建了可用性组并且同步了主副本和辅助副本,则解决办法是手动将登录名从主副本复制到辅助副本。

请查看文章如何在 SQL Server 实例之间传输登录名和密码,在 SQL Server 实例之间复制登录名。

创建和配置可用性组

可使用以下过程在主副本上创建可用性组,在我们的示例中,可用性组为 SP-SRV1。

创建可用性组的具体步骤

  1. 确保您的登录帐户具有创建可用性组所需的权限。 这需要 db_owner 固定数据库角色的成员身份以及 CREATE AVAILABILITY GROUP 服务器权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

  2. 登录到将托管主副本的服务器,然后启动 SQL Server Management Studio。

  3. 若要启动“新建可用性组向导”,请右键单击“Always On高可用性”,然后单击“新建可用性组向导”。

  4. Click Next to advance to the Specify Name page. Enter SP-AG1 as the name of the new availability group in the Availability group name: box.

    此名称必须在 Windows Server 故障转移群集的群集和域中均是唯一的有效 SQL Server 标识符。

  5. 在" 选择数据库"页上," 此 SQL Server 实例上的用户数据库"网格中列出了全部有资格成为新可用性组的主数据库的用户数据库。 选择" TemporaryUserDB",然后单击" 下一步"。

  6. 在“指定副本”页上,使用下列选项卡为 SP-AG1 配置副本:“副本”、“终结点”和“备份首选项”

  7. 可用性组侦听器是虚拟网络名称,可以建立与给定可用性组的数据库的客户端连接。 可用性组侦听器将传入连接定向至主要副本或只读次要副本。 侦听器在可用性组故障转移之后提供快速的应用程序故障转移。 有关详细信息,请参阅连接到Always On可用性组侦听器

    在“侦听器”选项卡上,为我们的示例配置一个可用性组侦听器并使用名称 AGListener。

    重要

    [!重要说明] 如果使用的可用性组包含在多个子网上部署的副本,可能会出现间歇性的异常重度延迟。 最佳做法是,与多子网环境中的 SharePoint 可用性组的连接应配置 specifyMultiSubnetFailover=True ,以免重度网络延迟导致问题发生。 有关详细信息,请参阅 支持可用性组多子网故障转移部分。

    不能直接指定 MultiSubnetFailover=True ,因为 SharePoint 客户端无法直接修改连接字符串。 必须通过 SharePoint 命令行管理程序使用 PowerShell,才能在 MultiSubnetFailover 数据库属性上设置此值。 以下示例展示了具体操作。

$dbs = Get-SPDatabase | ?{$_.MultiSubnetFailover -ne $true}
     foreach ($db in $dbs)
     {
          $db.MultiSubnetFailover = $true
          $db.Update()
     }
  1. 为“选定的实例”网格中的每个实例选择所需的配置,然后单击“下一步”

  2. 单击“完成”以创建可用性组。

  3. The Select Initial Data Synchronization page lets you select a synchronization preference and specify the shared network location that all replicas can access. For our environment accept the default, Full, which performs full database and log backups. Click Next.

  4. The Validation page of the wizard displays the results of six checks before it lets you continue with availability group creation. If all checks pass, click Next to continue. If any tests fail, you cannot continue until you correct the error and then click Re-run Validation to run the validation tests again. When all the tests pass, click Next to continue.

  5. On the Summary page, verify the configuration of the replica that you are adding and then click Finish to save it. To change the configuration, click Previous to return to previous wizard pages.

安装和配置 SharePoint Server

此时,您可安装 SharePoint Server 和创建服务器场。 可使用以下过程作为指南来安装和配置 SharePoint Server。

注意

有关详细的安装和配置说明,请参阅安装 SharePoint Server 2019安装 SharePoint 2016安装 SharePoint 2013

安装 SharePoint Server

  1. 将 SharePoint Server 程序文件复制到计划安装 SharePoint 的计算机上的本地磁盘,或复制到网络文件共享中。

  2. 运行 Microsoft SharePoint 产品准备工具,安装所有必备组件以设置和使用 SharePoint Server。

  3. 运行安装程序安装二进制文件,配置安全权限,然后编辑 SharePoint Server 的注册表设置。

  4. 运行 SharePoint 产品配置向导以安装和配置配置数据库,安装和配置内容数据库,然后安装管理中心。

  5. 在“指定配置数据库设置”页的“数据库服务器”框中,键入 AGListener 作为运行 SQL Server 的计算机的名称。 7

    重要

    要提供自动故障转移,必须为可用性组侦听器指定与 SharePoint Server 的数据库相同的名称。

将 SharePoint 数据库添加到可用性组

若要完成为 SharePoint Server 场安装 Always On,请将 SharePoint 数据库添加到可用性组,然后将次要副本同步到主要副本。

重要

[!重要说明] 只添加支持用于 SQL Server Always On 可用性组的数据库。 有关详细信息,请参阅 SharePoint 数据库的受支持的高可用性和灾难恢复选项

在托管主要副本的服务器上,必须运行"将数据库添加到可用性组"向导,将所有 SharePoint 数据库添加到可用性组。 以下过程与我们之前介绍的可用性组创建过程相同。

将 SharePoint 数据库添加到可用性组

  1. 登录到将托管主副本的服务器,然后启动 SQL Server Management Studio。

    此帐户必须至少具有下列任一权限:

  • 可用性组的 ALTER AVAILABILITY GROUP 权限

  • CONTROL AVAILABILITY GROUP 权限

  • ALTER ANY AVAILABILITY GROUP 权限

  • CONTROL SERVER 权限

必须是具有 db_owner 固定数据库角色的成员身份,才能将数据库联接到可用性组。

  1. 在对象资源管理器中,浏览到可用性组,如有必要可展开它。

  2. 右键单击示例组 SP-AG1,然后单击“添加数据库”

  3. On the Select Databases page, all user databases that are eligible to become the primary database for the new availability group are listed on the User databases on this instance of SQL Server grid. Use the check boxes to select all the databases that you want to add to the group, and then click Next.

  4. The Select Initial Data Synchronization page lets you select a synchronization preference and specify the shared network location that all replicas can access. For our environment we'll accept the default, Full, which performs full database and log backups. Click Next.

  5. The Validation page of the wizard displays the results of six checks before it lets you continue with availability group creation. If any tests fail, you cannot continue until you correct the error and then click Re-run Validation to run the validation tests again. When all the tests pass, click Next to continue.

  6. On the Summary page, verify the configuration of the replica that you are adding, and then click Finish to keep it. To change the configuration, click Previous to return to previous wizard pages.

重要

[!重要说明] 您添加到 SharePoint 场的数据库不会自动添加到可用性组。 您必须使用本文中介绍的步骤或使用脚本自动执行此过程来添加它们。

使用故障转移测试验证 Always On 安装

将 SharePoint 数据与辅助副本同步后,最后一步便是测试故障转移。

必须运行广泛的故障转移测试,以确保Always On环境的行为符合预期,并且完全了解与SQL Server可用性组相关的配置要求和过程。 这些测试包括但不限于:

  • 确认所有服务器场服务和功能全部运行正常。

  • 确认 SharePoint Server 数据已保留且未损坏。

通过执行以下文章中介绍的计划手动故障转移或强制手动故障转移来测试可用性组故障转移:

可在 SQL Server 中通过使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 中的故障转移向导执行上述任一故障转移。

注意

在有多个 SharePoint 实例可相互进行故障转移的主动-主动故障转移群集方案中,您必须确保每台服务器具有足够的容量来处理本地工作负载和来自失败的服务器的工作负载。

监视 Always On 环境

必须监视 Always On 环境的性能、运行状况和容量。

表现

以下新的性能对象可用于监视 Always On 环境。

SQL Server 2012

SQL Server 2014 (SP1)

SQL Server 2016 和 SQL Server 2017

运行状况和容量

对于常规运行状况监视,可以使用可用性组仪表板了解系统中可用性组的运行状况。 有关详细信息,请参阅适用于 SQL Server 2014 Always On 可用性组 (SQL Server) 操作问题的 Always On策略 (SP1) 和针对操作问题的Always On策略 - Always On可用性SQL Server 2016 年和 2017 SQL Server。 若要详细了解 SQL Server 2012,请参阅以下内容:

还可以使用 Transact-SQL 通过为 Always On 可用性组提供的一组目录和动态管理视图来监视可用性组。 有关详细信息,请参阅监视可用性组 (Transact-SQL) for SQL Server 2014 (SP1) 和监视可用性组 (Transact-SQL) for SQL Server 2016 和 SQL Server 2017。

另请参阅

概念

安装和配置 SharePoint Server 2016

其他资源

在 Azure 中为 SharePoint Server 部署 SQL Server“始终启用”可用性组