Mobile navigation

  • SharePoint 安装部署
  • SharePoint 开发资料
  • SharePoint 培训资料
  • SharePoint 问题解答
为 SharePoint 2013 配置 SQL Server 2012 AlwaysOn 可用性组
2015/8/14 17:47:24

摘要:了解如何为 SharePoint 2013 服务器场创建和配置 SQL Server 2012 AlwaysOn 可用性组。

本文提供了为 SharePoint 2013 服务器场创建和配置 SQL Server 2012 AlwaysOn 可用性组所必需的信息和详细过程。

过程概述

建议按照以下安装顺序和关键配置步骤部署使用 AlwaysOn 可用性组的 SharePoint 服务器场:

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

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

  • 创建并配置可用性组。

  • 安装和配置 SharePoint 2013。

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

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


知识和技能要求

若要将 SQL Server AlwaysOn 可用性组实现为高可用性和灾难恢复解决方案,需要多种技术相互作用且必须正确地安装和配置。建议负责为 SharePoint 产品 设置 AlwaysOn 环境的团队具有以下技术的应用知识以及动手能力:

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

  • SQL Server 2012

  • SharePoint 2013

Windows Server 故障转移群集

若要创建和使用 SQL Server 2012 AlwaysOn 可用性组,您必须将 SQL Server 2012 安装在 Windows Server 故障转移群集 (WSFC) 群集上。有关详细信息,请参阅Windows Server Failover Clustering (WSFC) 与 SQL Server。

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

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

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

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

    • 具有群集将位于的域的域帐户。

    • 对每个群集节点具有本地管理员权限。

    • 具有 AD DS 的“创建计算机对象”和“读取所有属性”权限。有关详细信息,请参阅故障转移群集循序渐进指南:在 Active Directory 中配置帐户。

配置故障转移群集和 AlwaysOn 的一个非常重要的方面是,确定群集节点所需的仲裁投票。

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

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


SharePoint Foundation 2013 和 SharePoint Server 2013

一些 SharePoint 2013 数据库不支持 SQL Server AlwaysOn 可用性组。 建议您在配置 AlwaysOn 环境之前查看 SharePoint 数据库的受支持的高可用性和灾难恢复选项 (SharePoint 2013) 。您还应查看 SharePoint 2013 的硬件和软件要求 文章。


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

下图显示的是使用名为 SP_AG1 的可用性组的 SharePoint 2013 服务器场 (SPHA_farm)。我们将在配置 AlwaysOn 步骤中使用 SPHA_farm 作为参考示例。

使用 AlwaysOn 可用性组的 SharePoint 2013 服务器场

准备 Windows Server 群集环境

访问或创建一个包含三个节点的 Windows Server 故障转移群集 (WSFC),您可以使用它在每个群集节点上安装 SQL Server 2012。以下参考材料提供了配置 Windows Server 故障转移群集的指南和详细步骤:

  • Windows Server 2008 R2 中的故障转移群集。

    此页面提供了有关 Windows Server 2008 R2 的入门、部署、操作和疑难解答文章的链接。

  • 故障转移群集概述。

    此页面提供了有关 Windows Server 2012 的入门、部署、操作和疑难解答文章的链接。

准备 SQL Server 环境

您必须先准备 SQL Server 2012 环境,然后才能为 SharePoint Foundation 2013 或 SharePoint Server 2013 创建可用性组。若要准备环境,请完成下列任务:

  • 安装 SQL Server 必备组件。

  • 安装 SQL Server。

  • 启用 AlwaysOn。

准备数据库服务器环境时,您必须考虑 SharePoint 2013 数据库要求。在安装 SQL Server 之前,请参阅下列文章:

  • 硬件要求 - 数据库服务器

  • 安装 SharePoint 2013

  • 针对 SharePoint 2013 环境配置 SQL Server 安全

  • 有关适用于 SharePoint 数据库和 TempDB 的 SQL 排序规则的支持能力。(此文中的本指南还适用于 SharePoint 2013。)

安装 SQL Server 2012

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

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

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

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

启用 AlwaysOn

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

Note注意:
您可通过使用 SQL Server Management Studio、Transact-SQL 或 Windows PowerShell 3.0 来启用 AlwaysOn。
启用 AlwaysOn
  1. 您的登录帐户必须具有创建可用性组的权限级别。该帐户必须具有 db_owner 固定数据库角色的成员身份以及 CREATE AVAILABILITY GROUP 服务器权限、CONTROL AVAILABILITY GROUP 权限、ALTER ANY AVAILABILITY GROUP 权限或 CONTROL SERVER 权限。

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

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

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

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

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

  7. 重复上述步骤以便为其他群集节点上的 SQL Server 启用 AlwaysOn。

有关详细信息,请参阅启用和禁用 AlwaysOn 可用性组 (SQL Server) (http://go.microsoft.com/fwlink/p/?LinkId=267140)。

创建和配置可用性组

根据计划创建可用性组的 SQL Server 2012 环境,您可能必须在创建可用性组之前创建一个临时数据库。

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

Note注意:
若要具备添加到可用性组的资格,数据库必须是用户数据库。 系统数据库不能属于可用性组。有关详细信息,请参阅用于 AlwaysOn 可用性组的必备组件、限制和建议 (SQL Server) 的“可用性数据库必备组件和限制”部分,并参阅创建和配置可用性组 (SQL Server)。

如果连接的服务器的实例上没有用户数据库(我们的示例就属于这种情况),则需要创建一个。

使用以下过程创建一个临时用户数据库,该数据库将是可用性组的临时主副本。

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

    • CREATE DATABASE

    • CREATE ANY DATABASE

    • ALTER ANY DATABASE

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

  3. 启动 Management Studio。

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

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

    由于这是您在创建可用性组之后将删除的临时数据库,因此可使用默认设置。单击“确定”。

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

  6. 在对象资源管理器中,展开“数据库”,右键单击刚创建的临时数据库。选择“任务”,然后单击“备份”。

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

关于副本和数据同步

关于副本

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

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

副本配置要求

副本信息 说明

服务器实例

显示将承载可用性副本的服务器实例的名称。

初始角色

指示新副本首先将履行的角色:主角色或辅助角色。

自动故障转移(最多为 2)

指示副本使用的故障转移类型:自动或手动。

同步提交(最多为 3)

指示副本使用的提交类型。

可读辅助副本

指示辅助副本是否可读。

配置选项不可用于读访问、只读和只读目的。有关详细信息,请参阅可读辅助副本(AlwaysOn 可用性组)。

Important重要说明:
如果安装 SharePoint 2013 2014 年 4 月累积更新 (CU) 程序包或更多程序包,则运行时用法支持可读辅助副本。有关此 CU 的详细信息,请参阅 Office 2013 累积更新(2014 年 4 月)
Note注意:
当您向组添加副本时,还将为每个副本提供终结点并配置备份首选项。有关详细信息,请参阅添加或修改可用性副本时指定端点 (SQL Server)以及备份辅助副本(AlwaysOn 可用性组)。

数据同步

作为可用性组创建过程的一部分,您必须对主副本上的数据进行完整备份,并将备份安装到辅助副本上。 这是可用性组的初始数据同步。有关详细信息,请参阅“选择初始数据同步”页(AlwaysOn 可用性组向导)。

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

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

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

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

  • 若要使用“新建可用性组向导”同步数据,您必须具有一个所有副本均可写入的备份共享。您可在“指定所有副本可访问的共享网络位置”框中通过浏览方式指定该共享,或者通过输入其完全限定通用命名约定 (UNC) 路径名称 \\Systemname\ShareName\Path\ 来指定它。

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

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

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

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

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

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

登录名复制

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

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

SQL Server 2012 引入了用户使用包含的数据库的密码的概念。数据库本身存储所有数据库元数据和用户信息,在此数据库中定义的用户不必具有相应的登录名。 此数据库信息将由可用性组复制并且在故障转移之后可用。有关详细信息,请参阅包含的数据库。

Important重要说明:
如果创建新的 SharePoint 登录名用于现有可用性组,请确保将该登录名添加到包含的数据库,以便将其复制到每台将为可用性组承载 SQL Server 实例的服务器。例如,如果为某个 Web 应用程序创建了其他应用程序池,并为该池提供了一个新的标识(您尚未使用的应用程序池帐户),则无需将该帐户作为登录名添加。

创建和配置可用性组

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

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

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

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

  4. 单击“下一步”前进到“指定名称”页。在“可用性组名称:”框中输入 SP-AG1 作为新可用性组的名称。

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

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

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

  7. 可用性组侦听器是虚拟网络名称,它可以为给定可用性组的数据库提供客户端连接。可用性组侦听器将传入连接定向至主副本或只读辅助副本。 侦听器在可用性组故障转移之后提供快速的应用程序故障转移。有关详细信息,请参阅可用性组侦听器、客户端连接和应用程序故障转移 (SQL Server)。

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

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

    不能直接指定 MultiSubnetFailover=True,因为 SharePoint 客户端无法直接修改连接字符串。必须使用 Windows PowerShell 在 MultiSubnetFailover 数据库属性上设置此值。以下示例演示如何执行此操作。

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

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

  10. 利用“选择初始数据同步”页,您可选择同步首选项并指定所有副本均可访问的共享网络位置。针对我们的环境,我们将接受默认值“完全”,这将执行完整的数据库和日志备份。单击“下一步”。

  11. 向导的“验证”页在让您继续创建可用性组之前会显示六项检查的结果。如果所有检查通过,则单击“下一步”继续。如果任何测试失败,则在可以继续之前,必须更正错误然后单击“重新运行验证”再次运行验证测试。当所有测试通过时,单击“下一步”继续。

  12. 在“摘要”页上,验证您要添加的副本的配置,然后单击“完成”保存配置。若要更改配置,请单击“上一步”返回到之前的向导页面。

安装和配置 SharePoint 2013

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

Note注意:
有关详细的安装和配置说明,请参阅准备 SharePoint 2013 安装和安装 SharePoint 2013。
安装 SharePoint 2013
  1. 将 SharePoint 2013 程序文件复制到您计划安装 SharePoint 产品的计算机上的本地磁盘或网络文件共享。

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

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

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

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

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

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

若要完成 SharePoint 2013 服务器场的 AlwaysOn 安装,请将 SharePoint 数据库添加到可用性组并将辅助副本同步到主副本。

Important重要说明:
仅添加支持用于 SQL Server AlwaysOn 可用性组的数据库。有关详细信息,请参阅SharePoint 数据库的受支持的高可用性和灾难恢复选项 (SharePoint 2013)

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

将 SharePoint 数据库添加到可用性组
  1. 登录到将承载主副本的服务器,然后启动 SQL Server Management Studio。

    使用的帐户必须是安装 SharePoint 2013 的每台服务器的本地管理员组的成员

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

    • 可用性组的 ALTER AVAILABILITY GROUP 权限

    • CONTROL AVAILABILITY GROUP 权限

    • ALTER ANY AVAILABILITY GROUP 权限

    • CONTROL SERVER 权限

    将数据库联接到可用性组需要 db_owner 固定数据库角色的成员身份。

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

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

  4. 在“选择数据库”页上,“此 SQL Server 实例上的用户数据库”网格中将列出所有有资格成为新可用性组的主数据库的用户数据库。使用复选框选中要添加到组中的所有数据库,然后单击“下一步”。

  5. 利用“选择初始数据同步”页,您可选择同步首选项并指定所有副本均可访问的共享网络位置。针对我们的环境,我们将接受默认值“完全”,这将执行完整的数据库和日志备份。单击“下一步”。

  6. 向导的“验证”页在让您继续创建可用性组之前会显示六项检查的结果。如果任何测试失败,则在可以继续之前,必须更正错误然后单击“重新运行验证”再次运行验证测试。当所有测试通过时,单击“下一步”继续。

  7. 在“摘要”页上,验证您要添加的副本的配置,然后单击“完成”保留配置。若要更改配置,请单击“上一步”返回到之前的向导页面。

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

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

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

您必须运行大量故障转移测试来确保 AlwaysOn 环境的行为与预期一致,并确保您充分了解有关 SQL Server 2012 可用性组的配置要求和过程。这些测试包括但不限于以下内容:

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

  • 确认保留了且未损坏 SharePoint 2013 数据。

按照对可用性组执行计划的手动故障转移 (SQL Server) 中介绍的计划的手动故障转移或对可用性组执行强制手动故障转移 (SQL Server) 中介绍的强制手动故障转移来测试可用性组故障转移。

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

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

监测 AlwaysOn 环境

必须监测 AlwaysOn 环境的性能、运行状况和容量。

性能

新的性能对象 SQL Server,数据库副本 和 SQL Server,可用性副本 均可用于监测 AlwaysOn 环境。

运行状况和容量

对于常规运行状况监测,您可使用可用性组仪表板来获取系统中的可用性组的运行状况。建议您参阅官方 SQL Server AlwaysOn 团队博客上的下列文章以充分了解 AlwaysOn 运行状况监测。

  • AlwaysOn 运行状况模型第 1 部分 -- 运行状况模型体系结构

  • AlwaysOn 运行状况模型第 2 部分 -- 扩展运行状况模型

您还可使用 Transact-SQL 通过利用 AlwaysOn 可用性组提供的一组目录和动态管理视图监测可用性组。有关详细信息,请参阅监测可用性组 (Transact-SQL)。