在 SharePoint Server 中移动所有数据库

 

**上一次修改主题:**2018-03-07

**摘要:**了解如何将所有与 SharePoint Server 2016 和 SharePoint 2013 关联的数据库移到新数据库服务器。

可以使用 SharePoint 管理中心网站或 SQL Server 工具将所有与 SharePoint Server 关联的数据库移动到新的数据库服务器。

开始之前

本文中介绍的过程说明如何移动以下几种在单台数据库服务器上托管的数据库:

  • 配置数据库

  • 管理中心内容数据库

  • 内容数据库

  • 服务应用程序数据库

重要

要在同一 SQL Server 实例中移动数据库文件,我们建议您使用 ALTER DATABASE 语句的 FILENAME 子句。有关详细信息,请参阅移动用户数据库
要将数据库移动到 SQL Server 的另一实例或移动到另一服务器,我们建议您遵循数据库分离和附加 (SQL Server)SQL Server 数据库的备份和还原中的过程。

下面是执行此过程所需的最低权限:

  • 您必须是 SharePoint 组“Farm Administrators”的成员。

  • 在运行 SharePoint 管理中心网站的计算机上,您必须是 Administrators 组的成员。

  • 在移出数据库的数据库服务器上,您必须是以下组的成员:

    • Administrators 组

    • db_backupoperator 固定数据库角色

  • 在移入数据库的数据库服务器上,您必须是以下组的成员:

    • Administrators 组

    • db_owner 固定数据库角色

在某些环境中,您必须配合数据库管理员来执行移动过程。请务必遵循适用的策略和准则来管理数据库。

重要

移动数据库时,所有服务器场站点和资产在移动过程完成之前对用户不可用。尝试在正常业务时间以外的时间完成此操作。

移动所有数据库

若要将所有数据库从一台数据库服务器移动到另一台数据库服务器,必须在 SharePoint Server 和 SQL Server 中工作。

开始此操作之前,请查看此过程中的步骤:

  1. 准备新的数据库服务器。

  2. 关闭所有打开的 SharePoint 命令行管理程序 窗口。

  3. 停止与 SharePoint Server 和 Internet Information Services (IIS) 相关的所有服务。

  4. 从当前 SQL Server 实例中分离数据库。

  5. 将与数据库关联的所有文件(.mdf, .ndf 和 .ldf)复制或移动到运行 SQL Server 的新目标服务器。

  6. 确保在新的目标数据库服务器上正确配置数据库的所有 SQL Server 登录名、固定服务器角色、固定数据库角色和权限。

    备注

    您移动数据库的目标服务器必须具有与当前 SQL Server 实例相同的数据库信息。有关如何执行此操作的详细信息,请参阅如何在 SQL Server 实例之间传输登录和密码。有关详细信息,请参阅服务器级别角色数据库级别的角色

  7. 将数据库附加到运行 SQL Server 的新目标服务器。

  8. 使用 SQL Server 连接别名指向新的数据库服务器并更新所有 Web 服务器。

    如果不想使用 SQL Server 连接别名,请使用以下过程之一来更新 SharePoint Server 场的数据库连接。

    • 方案 1:如果使用 SharePoint Server 和 SQL Server AlwaysOn 可用性组来实现高可用性或灾难恢复,则使用此过程来更新数据库连接。

    • 方案 2:如果必须使用手动步骤,或者将数据库从 SharePoint Server 单服务器场角色安装移至新的单服务器场角色安装,则使用此过程。

  9. 重新启动您在步骤 3 中停止的所有服务。

准备新数据库服务器的具体步骤

  • 使用 针对 SharePoint Server 配置 SQL Server 安全性 中的过程配置新的数据库服务器。

    备注

    新数据库服务器必须与现有数据库服务器运行相同版本的 Windows Server 和 SQL Server,或者运行下列版本之一:
    对于 SharePoint Server 2016:

    • Windows Server 2012 R2

    • Windows Server 2016

    • SQL Server 2014 Service Pack 1 (SP1)

    • SQL Server 2016

    对于 SharePoint 2013:
    • Windows Server 2008 R2

    • Windows Server 2008 R2 Service Pack 1 (SP1)

    • Windows Server 2012

    • SQL Server 2008

    • SQL Server 2012

    • SQL Server 2014

    现有 SharePoint Server 和 Windows Server 的版本还必须支持新 SQL Server 的版本,在该版本中将删除 DB。有关详细信息,请参阅 SharePoint Server 2016 的硬件和软件要求SharePoint 2013 的硬件和软件要求

关闭 SharePoint 命令行管理程序的所有已打开会话的具体步骤

  1. 关闭所有打开的 SharePoint 命令行管理程序 窗口和所有打开的命令提示符窗口。

停止场的具体步骤

  1. 在运行 管理中心 的服务器上,停止以下服务:

    • SharePoint 管理

    • SharePoint 计时器

    • SharePoint 跟踪

    • SharePoint 用户代码主机

    • SharePoint VSS 编写器

    • World Wide Web 发布服务

    • SharePoint Server Search 16

  2. 在运行 管理中心的服务器上,在命令提示符处键入 iisreset /stop

分离数据库的具体步骤

  1. 在原始数据库服务器上的 SQL Server Management Studio 中,将想要移动的数据库与附加该数据库的实例分离。如果正在运行多个数据库,您可能需要运行 Transact-SQL 脚本来分离数据库。

    备注

    如果存在以下情况之一,则无法分离数据库:

    • 数据库正在被镜像。

    • 数据库中存在数据库快照。

    有关详细信息,请参阅:

将数据库文件移至新服务器的具体步骤

  1. 确认执行此过程的用户帐户是以下组的成员:

    • 在移出数据库的数据库服务器上,您必须是以下组的成员:

      • Administrators 组

      • db_backupoperator 固定数据库角色

    • 在移入数据库的数据库服务器上,您必须是以下组的成员:

      • Administrators 组

      • db_owner 固定数据库角色

  2. 使用 Windows 资源管理器查找与要移动的每个数据库关联的 .mdf, .ldf 和 .ndf 文件。

  3. 将这些文件复制或移动到运行 SQL Server 的新计算机上的目标目录中。

在新服务器上设置权限的具体步骤

  1. 确认执行此过程的用户帐户是以下组的成员:

    • Administrators 组

    • db_owner 固定数据库角色

  2. 在目标数据库服务器上,启动 Management Studio 并将您的登录凭据和权限从原始实例传送到目标实例。建议您通过运行脚本来传送权限。如何在 SQL Server 的实例之间传输登录和密码中提供了示例脚本。

    有关如何在实例之间传送 SQL Server 元数据的详细信息,请参阅当数据库在其他服务器实例上可用时管理元数据

将数据库附加到 SQL Server 的新实例的具体步骤

  1. 确认执行此过程的用户帐户是以下组的成员:

    • Administrators 组

    • db_owner 固定数据库角色

  2. 在目标数据库服务器上,将数据库附加到新实例。有关详细信息,请参阅附加数据库sp_attach_db (Transact-SQL)

以下过程提供了连接到新 SQL Server 实例或更新数据库连接的方法。请使用最适合您的 SharePoint Server 场环境的过程。

通过设置 SQL Server 连接别名将 Web 应用程序指向新数据库服务器的具体步骤

  1. 此过程必须在连接到托管数据库的 SQL Server 实例的 SharePoint Server 服务器场中的所有服务器上执行。

  2. 确认执行此过程的用户帐户是以下组的成员:

    • Administrators 组

    • db_owner 固定数据库角色

  3. 启动 SQL Server 配置管理器

  4. 展开“SQL Server Native Client 配置”,右键单击“别名”,然后单击“新建别名”。

  5. 在“别名”框中,输入您要创建的新别名的名称。

  6. 在“端口号”框中,输入将用于接到 SQL Server 的新别名的端口号。

  7. 在“协议”框中,单击下拉箭头并选择“TCP/IP”。这是新别名将用来连接到 SQL Server 的协议。

  8. 在“服务器”框中,输入 SQL Server 当前实例的名称。

  9. 在连接到 SQL Server 新实例的服务器场中的所有服务器上重复步骤 3 到 8。有关详细信息,请参阅创建或删除客户端使用的服务器别名(SQL Server 配置管理器)

  10. 可选。如果你的环境依赖于 System Center 2012 - Data Protection Manager (DPM) 或使用卷影复制服务框架的第三方应用程序进行备份和还原,则必须在每个 Web 服务器或应用程序服务器上运行 SQL Server 安装程序来安装 SQL Server 连接组件。有关详细信息,请参阅使用安装向导(安装程序)安装 SQL Server 2014 以及Windows Server 安装和升级

备注

可以使用这些 Microsoft PowerShell cmdlet 以部署、管理和删除具有 SharePoint Server 的 SQL Server 中的可用性组:

  • Add-DatabaseToAvailabilityGroup

  • Remove-DatabaseFromAvailabilityGroup

  • Get-AvailabilityGroupStatus

如果您使用 SharePoint Server 和 SQL Server AlwaysOn 可用性组来实现高可用性或灾难恢复,则使用以下过程来更新数据库连接。

方案 1:使用 PowerShell 更新数据库连接的具体步骤

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 命令行管理程序。

  3. 在 PowerShell 命令提示符处,键入以下命令:

    Add-DatabaseToAvailabilityGroup -AGName "<AGGroupName>" -DatabaseName "<DatabaseName>" [-FileShare "<\\server\share>"]
    

    其中:

    • <AGGroupName> 为可用性组的名称。

    • <DatabaseName> 为要添加到可用性组的数据库的名称

    • 如果使用可选的 -FileShare 参数,则 <\\server\share> 为您使用的服务器和共享的名称。

  4. 针对您移动的所有数据库重复这些步骤,包括配置和管理中心内容数据库。

在下列情况下,使用下一过程:

方案 2:使用 Microsoft PowerShell 更新数据库连接的具体步骤

  1. 启动 SharePoint 命令行管理程序。

  2. 在 PowerShell 命令提示符处,键入以下命令:

    $db = get-spdatabase -identity <guid>
    

    其中:

    • <GUID> 为您移动的数据库的 ID。

    备注

    使用不含参数的 Get-spdatabase 查看带有 GUID 的所有数据库的列表。

    $db.ChangeDatabaseInstance("<DBServerName>")
    

    其中:

    • <DBServerName> 为新 SQL Server 的名称或别名,或者为 AlwaysOn 可用性组侦听器 DNS 名称。

    • $db.Update()
      
  3. 如果您使用 SQL Server 数据库镜像,则必须记住要填充 SharePoint 数据库上的 FailoverServiceInstance 属性。

    $db.failoverserviceinstance("<DBServerName>")
    

    其中:

    • <DBServerName> 为镜像 SQL Server 的名称或别名。

      $db.update()
      
  4. 针对您移动的所有数据库重复这些步骤,包括配置和管理中心内容数据库。

在场中重启服务的具体步骤

  1. 确认执行此过程的用户帐户是 SharePoint 组“Farm Administrators”的成员。

  2. 在运行 SharePoint 管理中心网站的服务器上,在命令提示符处键入 iisreset /start

  3. 在 Microsoft 管理控制台“服务”管理单元中,启动所有与 SharePoint Server 和 IIS 相关的服务。其中包括下列服务:

    • SharePoint 管理

    • SharePoint 计时器

    • SharePoint 跟踪

    • SharePoint 用户代码主机

    • SharePoint VSS 编写器

    • World Wide Web 发布服务

    • SharePoint Server Search

See also

SharePoint Server 中的数据库类型和说明

在 SharePoint 2013 中将数据库服务器添加到现有服务器场
快速参考指南:SharePoint Server 2016 数据库
支持 SharePoint 2013 的数据库