STSADM 备份错误:备份来自不同版本的 SharePoint





0/5 (0投票)
解释了一种替代的 stsadm 站点集恢复方法。
引言
本文讨论了我们在将 SharePoint 2010 场中的一个站点集从一个版本恢复到已升级的 SharePoint 2010 场版本时经常遇到的问题。这主要发生在企业 SharePoint 部署中,开发人员需要在某个环境中(例如开发环境)进行开发,然后将他们的应用程序迁移到一个全新的 SharePoint 场(例如暂存或生产环境)。
背景
众所周知,stsadm 提供了许多 SharePoint 方法,其中之一就是能够备份您的 SharePoint 站点集(stsadm –o backup –filename <filename> -url <sitecollurl>),然后将其恢复(stsadm –o restore –filename <filename> -url <pre created empty sitecollurl> -overwrite)到任何其他 SharePoint 2010 场。因此,在尝试将 SharePoint 2010 站点集恢复到略微升级的 SharePoint 场* 时,stsadm 会抛出恢复错误,显示为:
“备份来自不同版本的 Microsoft SharePoint Foundation,无法恢复到运行当前版本的服务器上。”
我们最终只会说“现在怎么办!!!”
使用代码/解决方案
嗯,有很多文章解释了针对此问题的修复方法,但没有一篇详细或完整的。这正是我打算写的内容。显而易见,解决方案是使用 **SQL Server 备份恢复**,或者更准确地说,是 **分离附加 SQL 数据库**,而不是 stsadm 备份恢复。(在本文中,我将后者称为“SQL Server 备份恢复”。)但这并非就此结束,为了确保您的站点集得到正确恢复和升级,您需要更进一步执行 PowerShell 升级命令。
下面将解释执行站点集 SQL 备份恢复的步骤:
- 转到中央管理;找出存储站点集的内容数据库。通常位于“应用程序管理”-->(在“站点集”下)-->“查看所有站点集”。
- 登录到您的 SQL Server Management Studio;在数据库列表中找到内容数据库名称。使用 SQL Server Management Studio 的备份向导备份您的内容数据库。
- 将您的内容数据库恢复到作为已升级 SharePoint 场数据库服务器的 SQL Server。请确保旧版本和已升级版本的 SharePoint 的 SQL 数据库版本相同;例如,您不能将 SQL Server 2008 数据库备份文件恢复到 SQL Server 2008 R2 的计算机上。
- 现在,登录到已升级 SharePoint 场的中央管理,为要放置站点集的 Web 应用程序创建一个新的内容数据库(“应用程序管理”-->(在“数据库”下)-->“管理内容数据库”-->单击“添加内容数据库”)。请确保您选择的 Web 应用程序没有与您尝试恢复的站点集具有相同 URL 的站点集**。**将内容数据库命名为与恢复 SQL Server 备份时相同的名称。然后,您就大功告成了!!!您的新站点集应该可以在 Web 应用程序中浏览了。
- 但是,这并非就此结束,您可能可以正常浏览您的站点集,但仔细查看,您的站点集此时仅已恢复,但尚未升级。要验证这一点,请转到中央管理-->“升级和迁移”-->(在“升级和修补管理”下)-->单击“查看数据库状态”,您就能看到真相。如果在此处指向新恢复的内容数据库,您会看到一条消息,说明:
在此页面上,选择您的站点集所在的 Web 应用程序,然后单击左侧的站点集 URL。右侧的表应显示存储站点集数据的“内容数据库名称”。
“数据库处于兼容范围内,建议进行升级”。
因此,实际上,如果您再次尝试在此已升级的 SharePoint 场中使用 stsadm 备份恢复此站点集,您会遇到与之前相同的错误。
这时您需要使用 PowerShell 命令进行升级。
Upgrade-SPContentDatabase –Identity <name_of_contentDB>
当此命令执行完成后,您的站点集现在就已完全恢复并升级。
关注点
总而言之,本文可以通过对 stsadm 的备份恢复方式和 SQL Server 的备份恢复方式进行简要比较来总结。
STSADM | SQL Server(如上文所述) |
这允许站点集在 Web 应用程序中的任何 URL 位置进行恢复(在显式路径,如 Web 应用程序的根目录或通配符路径,如“/sites/SiteCollection”)。 | 这会将站点集恢复到 Web 应用程序中备份时的确切相同 URL。 |
此方法的粒度级别为顶级站点或站点集级别。 | 此方法的粒度级别为内容数据库,因此内容数据库中的所有站点集都通过此方法进行迁移。 |
通过此方法恢复站点集不需要在目标 SharePoint 场中创建新的内容数据库。 | 这强制要求在目标场中创建新的内容数据库。 |
与 SQL Server 备份生成的文件相比,备份文件通常非常小。例如,对于一个 stsadm 备份的站点集文件大小为 294 KB,而内容数据库(仅包含一个站点集)的备份文件通常为 23 MB。 | 生成的备份文件大小巨大。 |
不需要访问数据库服务器或 SQL Server Management Studio 来连接它。 | 需要数据库服务器以及 SQL Server Management Studio 的权限才能连接它。 |
参考文献
* 要查看 SharePoint 场的当前版本,请在中央管理中,转到“系统设置”-->(在“服务器”下)-->“管理场中的服务器”。在“场信息”下找到您场的版本,标题为“场数据库版本”。
** 执行 SQL Server 备份恢复而不是 stsadm 备份恢复的一个麻烦在于,您不能随意将站点集恢复到任何 URL。前者执行恢复时会包含站点集的 URL;然而,stsadm 备份恢复则不同,您可以自由选择 URL。