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

 

适用于: SharePoint Foundation 2010

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

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

重要

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

移动内容数据库概述

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

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

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

  3. 在 SharePoint Foundation 中,从 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 Foundation 2010)

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

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

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

移动内容数据库

备注

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

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

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

备注

如果要将内容数据库移动到其他服务器场,则在还原过程中,必须使服务器场帐户成为数据库服务器上 Administrators 组的成员。这样,该帐户便能够复制数据库的安全设置。移动内容数据库后,可移除此访问级别。
目标服务器场运行的 SharePoint Foundation 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. 对于针对要移动的内容数据库运行的每个计划作业,单击该作业打开“编辑计时器作业”页,单击“禁用”,然后单击“确定”。

使用管理中心从 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. 对于以前禁用的每个计划作业,单击该作业打开“编辑计时器作业”页,单击“启用”,然后单击“确定”。