在 SharePoint Server 中的数据库之间移动网站集

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

在某些情况下,建议将一个或多个网站集移动到其他内容数据库中。 例如,网站集可能会增大,而它所驻留的内容数据库无法再容纳它,因此必须将网站集移动到更大的内容数据库中。 在 SharePoint Server 中,应按照此过程操作,将网站集移动到更大的数据库中。

不过,如果网站集没有增大到预期容量,那么将多个网站集组合到一个内容数据库中,可能会很方便。 在 SharePoint Server 中,此过程不会合并内容数据库,而会将网站集移动到新数据库并进行联接。

可以使用 Microsoft PowerShell 在 SharePoint Server 场中的数据库之间移动网站集。 也可以按照备份和还原过程操作,从而移动网站集。 若要了解如何执行此操作,请参阅在 SharePoint Server 中备份网站集在 SharePoint Server 中还原网站集

开始之前

开始此操作之前,必须满足以下条件:

  • 目标内容数据库必须已存在。

  • 源内容数据库和目标内容数据库必须位于同一 SQL Server 实例上。

  • 源内容数据库和目标内容数据库必须连接到同一 Web 应用程序。 有关如何将内容数据库添加到 Web 应用程序中的详细信息,请参阅在 SharePoint Server 中添加内容数据库

确定源网站集的大小

将网站集移到另一个内容数据库时,将会复制审计数据。 审计数据大小因网站集的事件集合设置而异。 如果审计数据很大,可以在移动网站集之前,将数据移到另一个数据库。 为此,请执行使用 Microsoft PowerShell 存档和修整审计数据的具体步骤过程。

无论移动网站集的理由是什么,您都应该始终通过确定要移动的网站集的大小来开始执行任务。 然后,应确保目标硬盘有充裕的空间可以容纳网站集内容。 确认目标硬盘至少具有网站集所需的三倍的可用空间。

提示

你可以通过创建网站配额和电子邮件通知,以持续了解关于网站集当前在用空间的最新信息。

使用 PowerShell 确定网站集的大小

  1. 确认您具有以下成员身份:
  • SQL Server 实例上的 securityadmin 固定服务器角色。

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

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

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

    注意

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

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

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

$used = (Get-SPSiteAdministration -Identity <http://ServerName/Sites/SiteName>).DiskUsed
$used

其中:

  • <http://ServerName/Sites/SiteName> 是网站集的名称。

指定的网站集使用的磁盘空间量存储在 $used 变量中,并在运行第二个命令时在命令提示符处显示。

注意

显示的磁盘空间量不包含将随网站集移动的审计数据所使用的磁盘空间。

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

使用 PowerShell 存档和修整审计数据

  1. 确认你具有以下成员身份:
  • SQL Server 实例上的 securityadmin 固定服务器角色。

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

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

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

    注意

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

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

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

(Get-SPSite -Identity <http://ServerName/Sites/SiteName>).Audit.TrimAuditLog(deleteEndDate)

其中:

  • <http://ServerName/Sites/SiteName> 是网站集的名称。

若要删除审计数据而不先进行保存,请键入以下命令:

(Get-SPSite -Identity <http://ServerName/Sites/SiteName>).Audit.DeleteEntries(deleteEndDate)

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

注意

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

在内容数据库之间移动网站集

可以使用 PowerShell 命令 Move-SPSite 在内容数据库之间移动网站集。 此处提供了两个过程。 第一个过程将一个网站集移动到新内容数据库中,而第二个过程将多个网站集移动到新内容数据库中。

移动单个网站集

  1. 确认您具有以下成员身份:
  • SQL Server 实例上的 securityadmin 固定服务器角色。

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

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

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

    注意

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

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

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

Move-SPSite <http://ServerName/Sites/SiteName> -DestinationDatabase <DestinationContentDb>

其中:

  • <http://ServerName/Sites/SiteName> 是网站集的名称。

  • <DestinationContentDb> 是目标内容数据库的名称。

移动多个网站集

  1. 确认您具有以下成员身份:
  • SQL Server 实例上的 securityadmin 固定服务器角色。

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

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

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

    注意

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

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

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

Get-SPSite -ContentDatabase <SourceContentDb> | Move-SPSite -DestinationDatabase <DestinationContentDb>

其中:

  • <SourceContentDb> 是原始内容数据库的名称。

  • <DestinationContentDb> 是目标内容数据库的名称。

此命令将源内容数据库中的所有网站集移动到目标内容数据库中。

有关详细信息,请参阅 Move-SPSite

注意

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

另请参阅

概念

在 SharePoint Server 中添加内容数据库