使用 STSADM 导出和导入网站集

Posted

技术标签:

【中文标题】使用 STSADM 导出和导入网站集【英文标题】:Using STSADM to export and import site collection 【发布时间】:2010-10-04 00:10:20 【问题描述】:

我在尝试使用 stsadm 导入现有导出时遇到问题。

成功导出网站集后,我创建了一个新的空白网站。当我运行导入命令时,它会运行一段时间,然后完成并出现以下错误:

01/28/2009 13:04:28.84 STSADM.EXE (0x3F54) 0x1D74 Windows SharePoint Services General 72ju High stsadm:发现重复名称“Team”。 Callstack:在 Microsoft.SharePoint .SPFieldCollection.AddFieldToWeb(String strXml, Boolean checkDisplayName) 在 Microsoft.SharePoint.SPFieldCollection.AddFieldAsXmlInternal(String schemaXml, Boolean addToDefaultView, SPAddFieldOptions op) 在 Microsoft.SharePoint.Deployment.FieldTemplateSerializer.CreateField(SPWeb web, SerializationInfoHelper infoHelper) 在 Microsoft.SharePoint .Deployment.FieldTemplateSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject) at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, Deployme... 2009 年 1 月 28 日 13:04:28.84* STSADM.EXE (0x3F54) 0x1D74 Windows SharePoint Services 一般 72ju 高 ...ntObject 信封)在 Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream) 在 Microsoft.SharePoint.Deployment .ObjectSerializer.Deserialize(Stream serializationStream) 在 Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader) 在 Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects() 在 Microsoft.SharePoint.Deployment.SPImport.Run() 在 Microsoft.SharePoint .StsAdmin.SPImportOperation.Run(StringDictionary keyValues) at Microsoft.SharePoint.StsAdmin.SPStsAdmin.RunOperation(SPGlobalAdmin globalAdmin, String strOperation, StringDictionary keyValues, SPParamCollection pars)

当我随后运行该站点时,它似乎刚刚完成了一半的工作并在错误处停止。

谁能指出可能导致此错误的正确方向?

非常感谢

基兰

【问题讨论】:

【参考方案1】:

您是否安装了December cumulative update?微软最近修复了内容迁移框架中的一些错误。

【讨论】:

Lars,你认为这个累积补丁会解决这样的问题吗? 是的,我认为很有可能会。据我记得这个或类似的问题已经在 Oct CU 中得到解决。但请检查此 CU 或 Dec CU 的描述,看看您的具体错误是否已得到解决。否则在另一个测试盒上试试 Lars,我认为这个修补程序 support.microsoft.com/kb/956057 August CU 的一部分中提到了同样的问题。所以我安装了所有的 August CU。同样的错误。我查看了使用该字段的 SPManager,现在我找到了一个名为“团队”的名称,那么更改静态名称可以解决此问题吗?【参考方案2】:

堆栈跟踪告诉我们很多关于正在发生的事情。 最重要的一行是 Microsoft.SharePoint.SPFieldCollection.AddFieldToWeb 这意味着当将字段而不是列表添加到 SPWeb 时会发生错误。 如果您使用现有名称添加到 SPFieldCollection,则会出错。

如果您有兴趣,可以使用SharePointManager 来了解正在发生的事情。

发生这种情况的原因是您正在恢复到子站点,而主站点仍然具有那里的所有字段。

最好的办法是确保您拥有最新的补丁等 (see Lars suggestion)。

Walm3864 post 是正确的,因为新网站集不会出现同样的问题。 一个新的网站集通常是一个严肃的决定,必须根据您当前的信息架构来判断。

这不会影响搜索,因为可以使用托管路径(例如 http://intranet/sites/mynewsiteyay)将新网站集添加到现有网址中

这将影响您的备份策略,因为您需要将新数据库添加到该进程。

为一些较大的子网站添加新的网站集可能是有益的,因为如果所有数据库都低于 100GB,它将缩短备份时间。尽早拆分潜在的大型网站很重要,因为事后很难做到。

【讨论】:

谢谢纳特。导入失败后,我查看了目标站点,但没有看到任何名为“团队”的字段。这让我感到困惑的是,我无法确定它所指的“团队”是什么来尝试解决它。你知道我怎样才能找到“团队”吗? 忘了说,我用 SharePointManager 来做这个 如果“网络”中不存在,请检查网站集并查看是否存在。 您是指 SharePointManager 来执行此操作吗?我扩展了网站集并查看了字段,对吗?【参考方案3】:

查找此冲突的一种方法是打开 CMP 文件(例如使用 Winrar),然后查看 manifest.xml 文件。 在那里,搜索“团队”。即使显示名称不同,您也可能会找到两个 NAME="Team"... --> 我们遇到了类似的问题,我们必须修复源站点(集合),然后重新导出它,然后才能成功导入它。

希望这会有所帮助。

【讨论】:

【参考方案4】:

这可能与列表 ID 冲突。 试试这个,创建一个新的内容数据库,然后创建一个新的网站集并进行导入?

【讨论】:

我的意思是字段.. 抱歉当时正在用 splistitem 编码 a 并且不知何故进入了答案 ;) 嘿,鉴于我要导入的站点是一个干净的空白站点,我不知道为什么会有冲突?如果我创建一个新的内容数据库,这不会影响未来在整个场中的备份/搜索吗?有没有办法找到冲突的地方?

以上是关于使用 STSADM 导出和导入网站集的主要内容,如果未能解决你的问题,请参考以下文章

Watson Assistant 的数据集

将数据从一个网站集获取到同一 Web 应用程序共享点 2016 中的另一个网站集

其网站使用的程序集版本号列表

恢复-SPSite 发生网站集删除

使用phpMyAdmin管理网站数据库(创建导入导出…)

Sharepoint 2007数据怎么批量导出?或者有啥工具可以导出?