Mergecontentdbs:Stsadm 操作 (Windows SharePoint Services)
当指定 sourcedatabasename 参数和 destinationdatabasename 参数时,允许将网站集从一个内容数据库移动到另一个内容数据库。
源数据库和目标数据库必须位于同一个 Microsoft SQL Server 实例中,且必须连接到同一个 Web 应用程序。为了获得最佳性能,每次移动的网站集不能超过 250 个。否则,性能会大大降低。
备注
mergecontentdbs 操作是在 Windows SharePoint Services 3.0 Service Pack 1 中首次引入的。
![]() |
---|
4 月版累积更新用于修复影响 Stsadm mergecontentdbs 操作的已知问题。有关该问题的详细信息,请参阅 Stsadm Mergecontentdbs 命令可能导致 Windows SharePoint Services 3.0 中数据库损坏。如果计划合并或拆分内容数据库,强烈建议您安装 4 月版累积更新。 |
stsadm -o mergecontentdbs
-url <URL name>
-sourcedatabasename <source database name>
-destinationdatabasename <destination database name>
[-operation] {1-3}
1 - Analyze (default)
2 - Full database merge
3 - Read from file
[-filename] <file generated from stsadm -o enumsites>
参数名 |
值 |
是否必需 |
说明 |
url |
一个有效的 URL,例如“http://server_name” |
是 |
要合并其数据库的 Web 应用程序的 URL。 |
sourcedatabasename |
一个有效的数据库名,例如“WSS_Content_1” |
是 |
将从中移出网站集的数据库的名称。 |
destinationdatabasename |
一个有效的数据库名,例如“WSS_Content_2” |
是 |
网站集将移动到的数据库的名称。 |
operation |
以下任一值:
|
否 |
1 - Analyze:指示命令窗口显示当前的网站集数量、数据库大小、网站集的最大数量以及在达到每个内容数据库的最大网站集数量之前可以添加的网站集数量。 另外,命令窗口中还会显示有关哪个内容数据库用作源数据库和哪个内容数据库用作目标数据库的建议(假定数据库中的所有网站集都将进行移动)。此建议的依据是:哪个内容数据库包含较少的数据,因此移动起来会比较快。 这是默认设置。 2 - Full database merge:将整个内容数据库从一个数据库合并到另一个数据库。完成此操作之后,源内容数据库仍然存在于 Microsoft SQL Server 中,并且仍然连接到 Web 应用程序,只是其中不再具有任何网站集。 3 - Read from file:只将一部分网站集从源数据库移动到目标数据库。应在使用 filename 参数指定的文件中列出要移动的网站集。 |
filename |
一个有效的文件名,例如“sites.xml” |
否 |
指定源内容数据库中要移动到目标数据库的特定网站集 使用 Enumsites 操作的 databasename 参数可获得此信息。 备注 databasename 参数是在 Windows SharePoint Services 3.0 Service Pack 1 中首次引入的。 备注 可以使用重定向运算符“>”将 enumsites 操作的 XML 输出捕获到一个文本文件中。 |
在执行 Stsadm mergecontentdbs 操作之前,必须:
- 具备大小至少为源网站集的三倍的可用空间。可使用 Enumsites:Stsadm 操作 (Windows SharePoint Services) 来确定网站集的大小。
您必须是 Farm Administrators 和本地 Administrators 组的成员,并被授予对要移动的任何网站集的“完全控制”权限,才能将网站集从一个数据库移动到另一个数据库。若要授予此权限,请在管理中心内,依次单击“应用程序管理”、“应用程序安全性”和“Web 应用程序的策略”。用于执行此过程的帐户必须是 SQL Server 中的 db_owner 固定数据库角色的成员。
成功移动网站之后,可使用“Web 应用程序的策略”页面来移除或更改您的帐户权限级别。如果将您的帐户用于其他服务,请将该帐户重置为原始权限级别。
如果您没有执行此操作的正确权限,将收到以下错误消息:“正在移动网站... /sites/test 上已存在另一个网站。请在尝试使用相同 URL 创建新网站前删除此网站,选择新的 URL,或在最初指定的路径上创建一个新的包含网站。”
完成移动之后,您必须在服务器场中的每台前端 Web 服务器上运行 iisreset /noforce 命令。如果移动了大量的数据,您可能需要收缩 SQL 数据库和事务日志。有关收缩 SQL 数据库的更多信息,请参阅如何收缩数据库 (SQL Server Management Studio)(https://go.microsoft.com/fwlink/?linkid=102959&clcid=0x804)。
对于此示例,WSS_Content_1 和 WSS_Content_2 是内容数据库的名称。
若要使用重定向操作“>”在 sites.xml 文件中创建网站的列表,请使用以下语法:
stsadm -o enumsites -url http://<servername> –databasename WSS_Content_1 > sites.xml
备注
重定向程序运算符“>”将输出重定向到一个名为 sites.xml 的文本文件。然后,可以编辑 sites.xml 文件以列出应进行移动的网站集。
若要将在 sites.xml 文件中指定的网站集从一个内容数据库移动到另一个内容数据库,请使用以下语法:
stsadm -o mergecontentdbs -url http://<servername> -sourcedatabasename WSS_Content_1 -destinationdatabasename WSS_Content_2 -operation 3 -filename sites.xml
备注
operation 参数中的数字 3 对应于“Read from file”。
在移动网站集之后,若要确保所做的更改在服务器场中的所有前端 Web 服务器上都生效,请从命令提示符运行以下命令:
iisreset /noforce
Stsadm Mergecontentdbs 命令可能导致 Windows SharePoint Services 3.0 中数据库损坏