移动内容数据库 (SharePoint Server 2010)

 

适用于: SharePoint Foundation 2010, SharePoint Server 2010

上一次修改主题: 2016-11-30

本文介绍如何在运行 Microsoft SQL Server 的服务器之间、SQL Server 的实例之间或 Microsoft SharePoint Server 2010 Web 应用程序之间移动内容数据库。您可以移动内容数据库以实现数据库服务器或 Web 应用程序的负载平衡。

重要

本文仅介绍如何移动内容数据库。有关如何移动与 SharePoint Server 2010 关联的其他类型的数据库的信息,请参阅重命名或移动服务应用程序数据库 (SharePoint Server 2010)移动所有数据库 (SharePoint Server 2010)

移动内容数据库概述

在移动内容数据库时,必须将 SharePoint Server 2010 工具和 SQL Server 工具一起使用。可以使用 SharePoint Server 管理中心网站或 Windows PowerShell 2.0。以下列表概述了移动内容数据库的方法:

  1. 记录内容数据库的名称以及与其关联的 Web 应用程序。有关详细信息,请参阅记录与每个 Web 应用程序关联的内容数据库。

  2. 暂停可能尝试对数据库运行的任何服务应用程序和服务,包括计时器作业和搜索爬网。有关详细信息,请参阅使用 Windows PowerShell 暂停计时器作业(方法 1)或使用管理中心暂停计时器作业(方法 2)。

  3. 在 SharePoint Server 中,从 Web 应用程序移除内容数据库。可使用管理中心或 Windows PowerShell 2.0 执行此操作。通常,如果您只是要处理多个数据库,则编写 Windows PowerShell 2.0 脚本或许可以更快地完成操作。有关详细信息,请参阅使用管理中心从 Web 应用程序分离内容数据库(方法 1)或使用 Windows PowerShell 从 Web 应用程序分离内容数据库(方法 2)。

  4. 在 SQL Server 中,从当前实例分离数据库。有关详细信息,请参阅从 SQL Server 分离内容数据库。

  5. 通过使用 Windows 资源管理器,将与数据库关联的 .mdf, .ndf 和 .ldf 文件从源位置复制或移动到目标位置。有关详细信息,请参阅将内容数据库移动到新位置。

    备注

    还可通过备份和还原数据库来移动数据库,但本文不介绍备份和恢复过程。有关信息,请参阅备份和恢复 (SharePoint Server 2010)

  6. 在 SQL Server 中,将数据库附加到新实例。有关详细信息,请参阅将内容数据库附加到 SQL Server 的新实例。

  7. 在 SharePoint Server 中,将内容数据库添加到目标 Web 应用程序。确保在重新附加内容数据库时使用完全相同的名称。否则,SharePoint Server 将创建新的内容数据库。可使用管理中心或 Windows PowerShell 2.0 执行此操作。有关详细信息,请参阅使用管理中心将内容数据库附加到 Web 应用程序(方法 1)或使用 Windows PowerShell 将内容数据库附加到 Web 应用程序(方法 2)。

  8. 重新启动应对数据库运行的任何服务应用程序和服务,包括计时器作业和搜索爬网。有关详细信息,请参阅使用 Windows PowerShell 重新启动计时器作业(方法 1)或使用管理中心重新启动计时器作业(方法 2)。

移动内容数据库

备注

若要完成以下过程,必须具有本地计算机上的 Administrators 组的成员身份。在最低特权环境中运行 SharePoint Server 2010 时以及从管理中心内运行这些过程时,应确保您在 SQL Server 中担任以下角色:

  • 源服务器上的配置数据库和内容数据库的 dbowner 固定数据库角色,以便分离内容数据库。

  • 目标服务器上的 dbcreatorsecurityadmin 固定服务器角色,以便附加数据库和配置 SQL Server 登录。

备注

如果将内容数据库移动到其他服务器场,则必须在还原过程中使服务器场帐户成为数据库服务器上的 Administrators 组的成员。这将允许该帐户复制数据库的安全设置。可在移动内容数据库后删除此访问级别。有关详细信息,请参阅帐户权限和安全设置 (SharePoint Server 2010)
目标服务器场运行的 SharePoint Server 2010 的版本必须与源服务器场运行的版本相同或更高。

记录与每个 Web 应用程序关联的内容数据库

  1. 确认您满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

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

    Get-SPContentDatabase -WebApplication <http://SiteName>
    

    其中,<http://SiteName> 是 Web 应用程序的 URL。

  6. 对每个 Web 应用程序重复此过程。

有关详细信息,请参阅Get-SPContentDatabase

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

使用 Windows PowerShell 暂停计时器作业(方法 1)

  1. 确认您满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

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

    Get-SPTimerJob -webapplication <http://WebApplicationURL> | select name | Out-File <c:\timerjobfile.txt> -Append -Encoding ascii
    
    ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) { Get-SPTimerJob -Identity $tmrjob | Disable-SPTimerjob }
    

    其中:

    • <http://WebApplicationURL> 是与要移动的内容数据库关联的 Web 应用程序。

    • <c:\timerjobfile.txt> 是要创建的文件的位置,该文件列出了与 Web 应用程序关联的所有计时器作业。

有关详细信息,请参阅 Get-SPTimerJobOut-FileForEach-ObjectGet-ContentDisable-SPTimerJob

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

使用管理中心暂停计时器作业(方法 2)

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

  2. 在管理中心的“监控”部分,单击“检查作业状态”。

  3. 对于要对移动的内容数据库运行的每个计划作业,单击作业以打开“编辑计时器作业”页,再单击“禁用”,然后单击“确定”。

  4. 如果运行 Search Service 应用程序,并对内容数据库进行爬网,则按照启动、暂停、继续或停止爬网 (SharePoint Server 2010) 文章中的步骤执行操作以暂停爬网。

使用管理中心从 Web 应用程序分离内容数据库(方法 1)

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

  2. 在管理中心的“应用程序管理”部分,单击“管理内容数据库”。

  3. 在“管理内容数据库”页上,单击要移动的内容数据库。

    这将打开“管理内容数据库设置”页。

    备注

    如果列表中未显示该内容数据库,则它可能与另一个 Web 应用程序关联。若要选择另一个 Web 应用程序,请在“Web 应用程序”菜单上单击“更改 Web 应用程序”。

  4. 在“管理内容数据库设置”页上的“删除内容数据库”部分,选中“删除内容数据库”复选框,再单击“确定”。

    备注

    移除内容数据库不会删除该数据库;它只会移除数据库与 Web 应用程序的关联。

  5. 对要移动的每个内容数据库重复步骤 3 和 4。

使用 Windows PowerShell 从 Web 应用程序分离内容数据库(方法 2)

  1. 确认您满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

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

    Dismount-SPContentDatabase "<ContentDB>" 
    

    其中 <ContentDB> 是内容数据库的名称。

    备注

    如果有多个内容数据库具有相同名称,则必须在此命令中使用内容数据库 GUID,而不是使用内容数据库名称。若要检索内容数据库的 GUID,请运行不带参数的 Get-SPContentDatabase cmdlet。

有关详细信息,请参阅 Dismount-SPContentDatabaseGet-SPContentDatabase

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

从 SQL Server 分离内容数据库

  1. 确认执行此过程的用户帐户是存储每个数据库的数据库服务器上 db_owner 固定数据库角色的成员。

  2. 在 SQL Server Management Studio 中,打开 SQL Server 源实例,然后展开“数据库”节点。

  3. 右键单击内容数据库,指向“任务”,再单击“分离”。对要移动的每个内容数据库重复此步骤。

    备注

    使用此过程只会移动内容数据库。不要分离任何其他类型的数据库。

将内容数据库移动到新位置

  1. 确认执行此过程的用户帐户对源和目标文件夹均具有写访问权限。

  2. 使用 Windows 资源管理器定位内容数据库的 .mdf, .ldf 和 .ndf 文件。

  3. 选择要移动的数据库的 .mdf, .ldf 和 .ndf 文件,并将这些文件复制或移动到目标目录。

将内容数据库附加到 SQL Server 的新实例

  1. 确认执行此过程的用户帐户是存储每个数据库的数据库服务器上 dbcreator 固定服务器角色的成员。

  2. 在 Management Studio 中,打开 SQL Server 目标实例。

  3. 右键单击“数据库”节点,指向“任务”,再单击“附加”。

  4. 在“附加数据库”对话框中,浏览到已将 .mdf, .ldf 和 .ndf 文件转移到的位置,选择要附加的数据库的 .mdf 文件,然后单击“确定”。

  5. 对要移动的每个内容数据库重复此过程。

使用管理中心将内容数据库附加到 Web 应用程序(方法 1)

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

  2. 在管理中心的“应用程序管理”部分,单击“管理内容数据库”。

  3. 在“管理内容数据库”页上,单击“添加内容数据库”。

  4. 在“添加内容数据库”页上,确认“Web 应用程序”菜单显示正确的 Web 应用程序。

  5. 在“服务器”框中,指定承载数据库的数据库服务器。

  6. 在“数据库名称”框中,键入传输的内容数据库的准确名称。

    备注

    确认该名称正确。如果该名称不正确,则将创建新的数据库。

  7. 指定数据库的身份验证方法,然后单击“确定”。

  8. 对要添加的每个数据库重复这些步骤。确保从“Web 应用程序”菜单中为每个数据库选择正确的 Web 应用程序。

使用 Windows PowerShell 将内容数据库附加到 Web 应用程序(方法 2)

  1. 确认您满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

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

    Mount-SPContentDatabase "<ContentDB>" -DatabaseServer "<DBServer>" -WebApplication <http://SiteName>
    

    其中:

    • <ContentDB> 是要附加的内容数据库。

    • <DBServer> 是数据库服务器的名称。

    • <http://SiteName> 是将内容数据库附加到的 Web 应用程序的 URL。

有关详细信息,请参阅Mount-SPContentDatabase

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

使用 Windows PowerShell 重新启动计时器作业(方法 1)

  1. 确认您满足以下最低要求:请参阅 Add-SPShellAdmin

  2. 在“开始”菜单上,单击“所有程序”。

  3. 单击“Microsoft SharePoint 2010 产品”。

  4. 单击“SharePoint 2010 Management Shell”。

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

    ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) {Get-SPTimerJob -Identity $tmrjob | Enable-SPTimerjob}
    

    其中:

    • <c:\timerjobfile.txt> 是已创建的文件的位置,该文件列出了与 Web 应用程序关联的所有计时器作业。

有关详细信息,请参阅 Get-SPTimerJobForEach-ObjectGet-ContentEnable-SPTimerJob

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

使用管理中心重新启动计时器作业(方法 2)

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

  2. 在管理中心的“监控”部分,单击“检查作业状态”。

  3. 对于之前已禁用的每个计划作业,单击作业以打开“编辑计时器作业”页,再单击“启用”,然后单击“确定”。

  4. 如果运行 Search Service 应用程序并对内容数据库进行爬网,则按照启动、暂停、继续或停止爬网 (SharePoint Server 2010) 文章中的步骤执行操作以继续爬网。必须对内容数据库运行完全爬网。