在数据库之间移动网站集
一个 Web Application 里面可以使用多个内容数据库,但是,一个网站集(site collection)只能存在于一个内容数据库中。你可以将不同内容的网站集放到不同的内容数据库,这样对于改进性能和提升管理水平很有帮助。SharePoint 2010 默认是把新创建的网站集放在最新创建的那个内容数据库中。
在某些情况下,您可能希望将一个或多个网站集移动到其他内容数据库中。例如,网站集可能增大到其所在的内容数据库无法再容纳它,因此您必须将该网站集移动到更大的内容数据库中。在 Windows SharePoint Services 3.0 中,因为用于执行相应步骤的 Stsadm 命令的名称,所以此过程又被称为拆分 内容数据库。在 Microsoft SharePoint Foundation 2010 中,可以在将网站集移动到更大数据库中时更加仔细地查看这一过程。
另一方面,如果网站集没有增大到其预期容量,则将多个网站集组合到一个内容数据库中可能很方便。在 Windows SharePoint Services 3.0 中,此过程又称为合并 内容数据库。在此过程中,实际上并没有合并任何内容数据库,而是将网站集移动并合并到一个新数据库中。
本文介绍如何在内容数据库之间移动网站集和为其做准备。
可以使用 Stsadm 命令行工具或 Windows PowerShell 2.0 命令在内容数据库之间移动网站集。没有用于此任务的任何图形用户界面。
提示:
还可以使用备份和还原过程移动网站集。有关如何执行此操作的信息,请参阅备份网站集 (SharePoint Foundation 2010) 和还原网站集 (SharePoint Foundation 2010)。
若要执行本文中介绍的过程,请验证用户帐户是否有权访问运行 Windows PowerShell 2.0 的服务器之一,以及该用户帐户是否为以下组的成员:
-
SQL Server 源内容数据库、管理内容数据库、目标内容数据库和配置数据库中的 db_owner 固定数据库角色和SharePoint_Shell_Access 角色。
-
本地计算机上的 WSS_ADMIN_WPG 组。
若要执行这些过程,必须满足以下条件:
-
目标内容数据库必须已存在。
-
源内容数据库和目标内容数据库必须位于同一 SQL Server 实例上。
-
源内容数据库和目标内容数据库必须连接到同一 Web 应用程序。有关如何将内容数据库添加到 Web 应用程序中的详细信息,请参阅添加内容数据库 (SharePoint Foundation 2010)。
本文内容:
-
确定源网站集的大小
-
在内容数据库之间移动网站集
确定源网站集的大小
无论移动网站集的理由是什么,您都应该始终通过确定要移动的网站集的大小来开始执行任务。然后,应确保目标硬盘有充裕的空间可以容纳网站集内容。验证目标硬盘至少具有网站集所需的三倍的可用空间。
提示:
您可以通过创建网站配额和电子邮件通知,来不断了解关于网站集当前使用的空间的最新信息。
确定网站集的大小
-
在“开始”菜单上,单击“所有程序”。
-
单击“SharePoint 2010 产品”。
-
单击“SharePoint 2010 Management Shell”。
-
在 Windows PowerShell 2.0 命令提示符处,键入以下命令:
$used = (Get-SPSiteAdministration -Identity <http://ServerName/Sites/SiteName>).DiskUsed
$used
其中, 是网站集的名称。指定的网站集所使用的磁盘空间量存储在 $used 变量中,并在运行第二个命令时显示在命令提示符处。
有关详细信息,请参阅 Get-SPSiteAdministration。
指令
Get-SPSiteAdministration –Identity http://moss:8001 |select Url, @{label = "Size";Ex = {$_.DiskUsed/1MB}}, UsersCount
在内容数据库之间移动网站集
可以使用 Windows PowerShell 命令 Move-SPSite 在内容数据库之间移动网站集。此处提供了两个过程。第一个过程将一个网站集移动到新内容数据库中,而第二个过程将多个网站集移动到新内容数据库中。
移动一个网站集
-
在 Windows PowerShell 命令提示符处,键入以下命令:
Move-SPSite <http://ServerName/Sites/SiteName> -DestinationDatabase <DestinationContentDb>
其中,http://ServerName/Sites/SiteName 是网站集的名称,<DestinationContentDb> 是目标内容数据库的名称。
移动多个网站集
-
在 Windows PowerShell 命令提示符处,键入以下命令:
Get-SPSite -ContentDatabase <SourceContentDb> | Move-SPSite -DestinationDatabase <DestinationContentDb>
其中,<SourceContentDb> 是原始内容数据库的名称,<DestinationContentDb> 是目标内容数据库的名称。此命令将源内容数据库中的所有网站集移动到目标内容数据库中。
有关详细信息,请参阅 Move-SPSite。
注意:
我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。