在 SharePoint Server 中备份自定义项

 

**上一次修改主题:**2018-02-16

**摘要:**了解如何备份对 SharePoint Server 2016 和 SharePoint 2013 网站进行的自定义。

可以使用 SharePoint 管理中心网站或 Microsoft PowerShell 备份对 SharePoint Server 网站进行的自定义。具体使用哪种备份工具,取决于已部署的环境类型、备份计划要求以及与组织达成的服务级别协议。

本文内容:

  • 开始之前

  • 在 SharePoint 中备份解决方案包

  • 在 SharePoint 中备份沙盒解决方案

  • 在 SharePoint 中备份创作的网站元素

  • 在 SharePoint 中备份工作流

  • 在 SharePoint 中备份对 Web.config 文件所做的更改

  • 在 SharePoint 中备份第三方产品

  • 在 SharePoint 中备份未打包为解决方案的已开发自定义项

开始之前

开始此操作之前,请查看以下可对您的网站设置的自定义项的列表:

  • 打包为解决方案(.wsp 文件)的自定义项。解决方案包含开发的网站元素,并通常由开发人员创建。开发的网站元素包括:

    • Web 部件

    • 工作流

    • 网站和列表定义

    • 文档转换器

    • 事件接收器

    • 计时器作业

    • 程序集

  • 创作的网站元素(通常由 Web 设计者创建)不是明确编译的,它位于内容数据库中。创作的网站元素包括:

    • 母版页

    • 级联样式表

    • 表单

    • 布局页

  • 对 Web.config 文件所做的更改

  • 第三方解决方案及其关联的二进制文件和注册表项(例如 IFilter)

  • 通过浏览器直接编辑而对创建的网站所做的更改

  • 未打包为解决方案的已开发自定义项

备注

上述每类自定义项都需要一个不同类型的备份。

在 SharePoint Server 中备份解决方案包

解决方案包可以通过使用 SharePoint Designer 或 Visual Studio 进行创建。强烈建议将所有自定义项部署为解决方案包。有关详细信息,请参阅Creating SharePoint Solution Packages创建 SharePoint 解决方案包)。

解决方案包是一类可部署且可重用的文件,它可包含一组适用于网站的功能、网站定义和程序集,并且您可以分别启用或禁用它。解决方案包可包含 Web 部件、网站或列表定义、自定义列、新内容类型、自定义字段、自定义操作、编码工作流或工作流活动和条件。

用来备份解决方案包的方法由是将自定义项部署为受信任的解决方案还是沙盒解决方案来决定的(部分受信任的代码)。

受信任的解决方案是服务器场管理员部署的解决方案包。受信任的解决方案将部署到整个服务器场,并可在服务器场内的任何网站上使用。受信任的解决方案存储在配置数据库中。在使用 SharePoint Server 备份来备份服务器场时,将备份受信任的解决方案,这些解决方案包含在仅配置备份中。此外,可以将受信任的解决方案作为一个组来备份,或分别对它们进行备份。受信任的解决方案在备份层次结构中是可见的。

沙盒解决方案是可由网站集管理员部署到单个网站集的解决方案包。沙盒解决方案将存储在与将解决方案包部署到的网站集关联的内容数据库中。这些解决方案包含在 SharePoint Server 服务器场、Web 应用程序、内容数据库和网站集备份中,但在备份层次结构中不可见且无法单独进行选择或备份。

建议您为受信任的解决方案和沙盒解决方案保留原始 .wsp 文件和用于生成 .wsp 文件的源代码的备份。

使用管理中心备份受信任的解决方案

  1. 确认执行此过程的用户帐户是 服务器场管理员 组的成员。

  2. 启动管理中心。

  3. 在管理中心主页上的“备份和还原”部分,单击“执行备份”。

  4. 在“执行备份 - 第 1 步(共 2 步): 选择要备份的组件”页上,选择“解决方案”,再单击“下一步”。

    如果只需要备份单个解决方案,则也可以选择单个解决方案。

  5. 在“开始备份 - 第 2 步(共 2 步): 选择备份选项”页上,在“备份类型”部分,选择“完全”或“差异”。

    备注

    如果是首次备份解决方案,则必须使用“完全”选项。必须先执行一次完全备份,然后才能执行差异备份。

  6. 在“备份文件位置”部分,键入备份文件夹的通用命名约定 (UNC) 路径,然后单击“开始备份”。

  7. 您可以在“备份和还原作业状态”页顶部的“准备情况”部分查看所有备份作业的常规状态。在该页下半部分的“备份”部分查看当前备份作业的状态。状态页每 30 秒自动更新一次。您可以单击“刷新”手动更新状态详细信息。备份和恢复是定时服务作业。因此,可能需要几秒钟才会开始备份。

    如果出现任何错误,请查看“备份和还原作业状态”页的“失败消息”列。您还可以在步骤 4 中指定的 UNC 路径内的 Spbackup.log 文件中找到更多详细信息。

使用 PowerShell 备份受信任的解决方案

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 命令行管理程序。

  3. 在 PowerShell 命令提示符处,键入以下命令以备份服务器场中的所有解决方案。若要备份单个解决方案,请将该解决方案的名称添加到项目路径“farm\solutions”。

     Backup-SPFarm -backupmethod full -directory <UNC location> -item "farm\solutions"
    

    其中:

    • <UNC location> 是存储备份文件的目录的 UNC 位置。

有关详细信息,请参阅 Backup-SPFarm

备注

我们建议您在执行命令行管理任务时使用 Windows PowerShell。Stsadm 命令行工具已被弃用,仍然包含该工具是为了支持与之前产品版本的兼容性。

在 SharePoint Server 中备份沙盒解决方案

无法仅备份沙盒解决方案,而必须备份与沙盒解决方案关联的服务器场、Web 应用程序或内容数据库。有关这些备份方法的详细信息,请参阅相关主题。

在 SharePoint Server 中备份创作的网站元素

无法仅备份创作的网站元素,而必须备份与创作的网站元素关联的服务器场、Web 应用程序或内容数据库。有关这些备份方法的详细信息,请参阅相关主题。

在 SharePoint Server 中备份工作流

工作流是一种可以备份的自定义项的特例。请确保您的备份和恢复计划可处理符合您的环境的以下任一情形:

  • 声明性工作流(如 SharePoint Designer 中创建的工作流)将存储在它们将部署到的网站集的内容数据库中。备份内容数据库可保护这些工作流。

  • 自定义声明性工作流操作的组件位于以下三个位置:

    1. 操作的 Visual Studio 2013 程序集存储在全局程序集缓存 (GAC) 中。

    2. XML 定义文件(.ACTIONS 文件)存储在 16\TEMPLATE\<LCID>\Workflow 目录中。

    3. 用于将操作标记为授权类型的 XML 项存储在它用于的 Web 应用程序的 Web.config 文件中。

    如果场工作流使用自定义操作,应使用文件备份系统来保护这些文件和 XML 项。与 Web 部件和事件接收器等功能类似,应在恢复后根据需要将这些文件重新应用于场。

  • 依赖自定义代码的工作流(如使用 Visual Studio 创建的工作流)存储在两个位置。工作流的 Visual Studio 程序集存储在 GAC 中,XML 定义文件存储在“功能”目录中。这与其他类型的 SharePoint 功能(如 Web 部件和事件接收器)一样。如果工作流是作为解决方案包的一部分进行安装,备份场、Web 应用程序、内容数据库或网站集可保护这些工作流。

  • 如果创建一个自定义工作流,该工作流与一个部署它的网站集之外的网站集进行交互,则必须备份这两个网站集才能保护该工作流。这包括写入另一个网站集中的历史记录列表或其他自定义列表的工作流。通过执行服务器场备份,足以备份服务器场中的所有网站集以及与这些网站集关联的所有工作流。

  • 必须单独备份和还原尚未部署的工作流。开发新工作流但尚未将其部署到 SharePoint Server 服务器场时,请确保使用文件系统备份应用程序备份存储工作流项目文件的文件夹。

在 SharePoint Server 中备份对 Web.config 文件所做的更改

SharePoint Server 的常见自定义项是更改 Web.config 文件。强烈建议您使用管理中心或 SharePoint Server API 和对象模型对 Web.config 文件进行更改。由于这些更改将存储在配置数据库中,因此可从服务器场或仅配置备份来恢复它们。

如果更改 Web.config 文件时未使用管理中心或 SharePoint Server API 和对象模型,应使用文件系统备份来保护这些更改。

备注

如果使用的是基于表单的身份验证,Web.config 文件中的提供程序注册为手动进行,并且不受 SharePoint Server 备份保护。在这种情况下,请务必使用文件系统备份来备份 Web.config 文件。

在 SharePoint Server 中备份第三方产品

如果将第三方产品部署为解决方案包,则它们受 SharePoint Server 备份保护。建议您保留安装所需的所有原始文件、分发介质、文档和许可证及产品密钥。

在 SharePoint Server 中备份未打包为解决方案的已开发自定义项

备份未部署为解决方案包的已开发自定义项是一个非常复杂的过程,因为自定义文件位置可能未存储在标准化位置,并且 SharePoint Server 未自动进行备份。

请咨询开发团队或自定义项供应商,确定自定义项是涉及其他位置的附加外接程序软件还是文件。建议您使用文件系统备份解决方案备份这些目录。下表列出了开发的自定义项在 Web 服务器上的常见存储位置。

Location 说明

%PROGRAMFILES%\Common files\Microsoft Shared\Web Server Extensions\16

经常更新的文件、自定义程序集、自定义模板、自定义网站定义

Inetpub

IIS 虚拟目录的位置

%WINDIR%\Assembly

全局程序集缓存 (GAC):操作系统中一个受保护的位置,将在此位置安装 Microsoft .NET Framework 代码程序集以提供完全的系统访问权限

See also

在 SharePoint Server 中还原自定义项
在 SharePoint Server 中备份服务器场
在 SharePoint Server 中备份服务器场配置
在 SharePoint Server 中备份 Web 应用程序
在 SharePoint Server 中备份内容数据库
在 SharePoint Server 中备份网站集
在 SharePoint Server 2013 中更新工作流