65.9K
CodeProject 正在变化。 阅读更多。
Home

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

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2011年9月20日

CPOL

5分钟阅读

viewsIcon

38530

解释了一种替代的 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,无法恢复到运行当前版本的服务器上。

1.JPG

我们最终只会说“现在怎么办!!!”

使用代码/解决方案

嗯,有很多文章解释了针对此问题的修复方法,但没有一篇详细或完整的。这正是我打算写的内容。显而易见,解决方案是使用 **SQL Server 备份恢复**,或者更准确地说,是 **分离附加 SQL 数据库**,而不是 stsadm 备份恢复。(在本文中,我将后者称为“SQL Server 备份恢复”。)但这并非就此结束,为了确保您的站点集得到正确恢复和升级,您需要更进一步执行 PowerShell 升级命令。

下面将解释执行站点集 SQL 备份恢复的步骤:

  1. 转到中央管理;找出存储站点集的内容数据库。通常位于“应用程序管理”-->(“站点集”)-->“查看所有站点集”。
  2. 2.JPG

    在此页面上,选择您的站点集所在的 Web 应用程序,然后单击左侧的站点集 URL。右侧的表应显示存储站点集数据的“内容数据库名称”。

  3. 登录到您的 SQL Server Management Studio;在数据库列表中找到内容数据库名称。使用 SQL Server Management Studio 的备份向导备份您的内容数据库。
  4. 3.JPG

  5. 将您的内容数据库恢复到作为已升级 SharePoint 场数据库服务器的 SQL Server。请确保旧版本和已升级版本的 SharePoint 的 SQL 数据库版本相同;例如,您不能将 SQL Server 2008 数据库备份文件恢复到 SQL Server 2008 R2 的计算机上。
  6. 4.JPG

  7. 现在,登录到已升级 SharePoint 场的中央管理,为要放置站点集的 Web 应用程序创建一个新的内容数据库(“应用程序管理”-->(“数据库”)-->“管理内容数据库”-->单击“添加内容数据库”)。请确保您选择的 Web 应用程序没有与您尝试恢复的站点集具有相同 URL 的站点集**。**将内容数据库命名为与恢复 SQL Server 备份时相同的名称。然后,您就大功告成了!!!您的新站点集应该可以在 Web 应用程序中浏览了。
  8. 但是,这并非就此结束,您可能可以正常浏览您的站点集,但仔细查看,您的站点集此时仅已恢复,但尚未升级。要验证这一点,请转到中央管理-->“升级和迁移”-->(“升级和修补管理”)-->单击“查看数据库状态”,您就能看到真相。如果在此处指向新恢复的内容数据库,您会看到一条消息,说明:
  9. 数据库处于兼容范围内,建议进行升级”。

    6.JPG

    因此,实际上,如果您再次尝试在此已升级的 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 场的当前版本,请在中央管理中,转到“系统设置”-->(“服务器”)-->“管理场中的服务器”。在“场信息”下找到您场的版本,标题为“场数据库版本”。

7.JPG

** 执行 SQL Server 备份恢复而不是 stsadm 备份恢复的一个麻烦在于,您不能随意将站点集恢复到任何 URL。前者执行恢复时会包含站点集的 URL;然而,stsadm 备份恢复则不同,您可以自由选择 URL。

© . All rights reserved.