了解备份 Team Foundation Server

通过为 Visual Studio Team Foundation Server (TFS) 所依赖的数据库创建定期备份计划,可以防止部署丢失数据。 若要完全还原 Team Foundation 的部署,必须先备份 TFS 的所有数据库。 如果部署包括 SharePoint 产品或 SQL Server Reporting Services,则还必须备份 TFS 在这些组件中使用的数据库。 若要防止出现同步错误或数据不匹配错误,您必须将所有备份同步到同一时间戳。 确保成功同步的最简单方法是使用标记的事务。 通过在每个 Team Foundation 数据库中定期标记相关事务,可在数据库中建立一系列公用恢复点。 有关备份使用 SharePoint Foundation 和报告的单服务器部署的分步指南,请参见配置备份日程安排和计划

备份数据库

可以创建 TFS 使用的数据库的备份,以作为防止 Team Foundation 部署丢失的重要措施。 下表及随附的插图显示了必须备份的数据库,并提供这些数据库在部署中的物理分布方式的示例。

数据库类型

产品

是否为可选组件?

配置数据库

Team Foundation Server

仓库数据库

Team Foundation Server

团队项目集合数据库

Team Foundation Server

SharePoint 产品数据库

SharePoint 产品

报告数据库

SQL Server Reporting Services

分析数据库

SQL Server Analysis Services

部署拓扑

根据部署配置,需要备份的所有数据库可能位于同一物理服务器上,如此示例拓扑所示。 此示例不包括 SharePoint 产品或 Reporting Services,因此您不必备份与报告、分析或 SharePoint 产品相关联的任何数据库。

简单数据库拓扑

或者,这些数据库也可能分布在许多服务器和服务器场上。 在此示例拓扑中,您必须备份跨六个服务器或服务器场扩展的以下数据库:

  • 配置数据库

  • 仓库数据库

  • 位于 SQL Server 群集上的团队项目集合数据库

  • 位于运行 SQL Server 的独立服务器上的集合数据库

  • SharePoint Web 应用程序1 的 SharePoint 产品管理数据库和网站集数据库

  • 位于运行 Reporting Services 的服务器上的数据库

  • 位于运行 Analysis Services 的服务器上的数据库

1 如果您的 SharePoint 数据库在多台服务器上进行扩展,则无法使用计划备份功能来对其进行备份。 必须手动配置这些数据库的备份,并确保这些备份与 TFS 数据库的备份同步。 有关详细信息,请参见 手动备份 Team Foundation Server

示例:数据库的复杂分发

在这两个示例中,您不必备份连接到服务器的任何客户端。 然而,您可能需要在客户端计算机上手动清除 Team Foundation Server 的缓存,客户端计算机才能链接到还原的部署。

要备份的数据库

下面的列表提供有关必须备份的数据库的其他详细信息,具体取决于部署资源。

警告

下面的列表中的所有数据库都是 SQL Server 数据库。虽然可以使用 SQL Server Management Studio 随时备份单个数据库,但应尽可能避免使用此类单个备份。如果您从单个备份还原,则可能遇到意外结果,因为 TFS 使用的数据库都是相关的。如果仅备份一个数据库,则该数据库中的数据将与其他数据库中的数据不同步。

  • Team Foundation Server 的数据库   Team Foundation Server 的逻辑数据层包括若干 SQL Server 数据库,其中包括配置数据库、仓库数据库以及部署中每个团队项目集合的数据库。 这些数据库可能位于同一台服务器上、分布在同一 SQL Server 部署中的若干实例上或是分布在多台服务器上。 无论其物理分布如何,您都必须将所有数据库备份到同一时间戳,以帮助确保防止数据丢失。 可手动执行数据库备份,也可使用按特定时间或时间间隔运行的维护计划来自动执行备份。

    警告

    Team Foundation Server 的数据库列表不是静态的。每次创建集合时都会创建新数据库。创建某个集合时,请确保将该集合的数据库添加到维护计划中。

  • SharePoint 产品的数据库   如果部署使用 SharePoint 产品承载团队项目门户网站,则您必须备份多个数据库。 这些数据库包括您的部署使用的每个 SharePoint Web 应用程序的管理数据库和承载团队项目门户网站的网站集数据库。 理想情况下,已将部署配置为在部署中对每个团队项目集合使用单独的网站集。 就像团队项目集合可以作为 Team Foundation Server 中的单元进行备份和还原一样,网站集可以在 SharePoint 产品中进行备份和还原。 如果部署中的一个或多个集合使用站点或子站点(而非网站集)作为其根站点,则您可能无法完全备份和还原这些集合。 有关详细信息,请参见管理团队项目集合

    备注

    您可能认为必须备份团队项目门户网站页的数据库和网站。但是,SharePoint 产品会从数据库动态生成网站。因此,在备份数据库时,还会备份团队项目中显示为网站的那些部分。如果在 SharePoint 产品内但在 Team Foundation 外创建了自定义站点集、网站模板或 Web 部件,则必须单独备份它们。有关详细信息,请参见 Microsoft 网站上的以下页面:

  • **Reporting Services 和 Analysis Services 的数据库   **如果部署使用 SQL Server Reporting Services 或 SQL Server Analysis Services 为 Team Foundation Server 生成报表,则必须备份报告数据库和分析数据库。 不过,您仍必须在还原后重新生成某些数据库,如仓库。

  • 报表服务器的加密密钥   报表服务器具有一个加密密钥,您必须备份该密钥。 此密钥保护存储在报表服务器数据库中的敏感信息。 可使用 Reporting Services 配置工具或命令行工具来手动备份此密钥。

备份的事先准备

部署 Team Foundation 时,应记录所创建的帐户以及所指定的任何计算机名称、密码和设置选项。 还应在安全的位置保留所有恢复资料、文档以及数据库和事务日志备份的副本。 为了预防灾难(例如火灾或地震)的发生,应将服务器备份的副本存放在服务器位置之外的其他位置上。 此策略将有助于防止丢失关键数据。 最佳做法是保存三份备份媒体副本,应至少将其中一份副本保存在远离现场的受控环境中。

重要

定期执行试验性数据还原,以验证您的文件是否已正确备份。试验性还原可以发现软件验证所不能发现的硬件问题。

备份和还原数据库时,必须将数据备份到带网络地址的媒体上(例如,已作为网络驱动器共享的磁带和磁盘)。 您的备份计划中应包括管理媒体的规定,例如下列策略:

  • 存储和回收备份集的跟踪和管理计划。

  • 覆盖备份媒体的时间表。

  • 在多服务器环境中,决定是使用集中备份还是使用分布式备份。

  • 跟踪媒体的可用生命周期的方法。

  • 将丢失备份集或备份媒体(例如磁带)的影响降低到最小的步骤。

  • 决定是现场存储备份集还是远离现场存储备份集,并分析此决定对恢复时间有何影响。

因为 Team Foundation 数据存储在 SQL Server 数据库中,所以不必备份安装了 Team Foundation 客户端的计算机。 如果出现涉及到这些计算机的媒体故障或灾难,则可以重新安装客户端软件并重新连接到服务器。 通过重新安装客户端软件,您的用户可具有更加整洁且更加可靠的方法,以替代从备份还原客户端计算机。

通过使用 Update 2 中提供的计划的备份功能或通过在 SQL Server 中手动创建维护计划来备份与 Team Foundation 部署相关的数据库,可以备份服务器。 Team Foundation Server 的数据库相互关联,如果创建了一个手动计划,应同时备份和还原这些数据库。 有关备份数据库的策略的详细信息,请参见 Microsoft 网站上的以下页面:SQL Server 中的备份和还原策略简介

备份类型

了解可用的备份类型可帮助您确定备份部署的最佳选择。 例如,如果您正在进行一个大型部署并希望在高效使用有限存储资源的同时防止数据丢失,则可以配置差异备份以及完整数据备份。 如果使用 SQL Server ALwaysOn,则可以备份辅助数据库。 您还可以尝试使用备份压缩或将备份拆分成多个文件。 以下是对您的备份选项的简短说明:

完全数据备份(数据库)   完全数据库备份是实现部署的可恢复性所必需的。 完全备份包括一部分事务日志,以便可以恢复完全备份。 完全备份是独立的,这是因为这些备份表示整个数据库在备份时的情况。 有关详细信息,请参见 Microsoft 网站上的以下页面:完全数据库备份

差异数据备份(数据库) 差异数据库备份仅记录自上次完全数据库备份(称为差异基准)以来发生更改的数据。 与完全数据库备份相比,差异数据库备份体积更小,速度也更快。 此选项可节省备份时间,但会以增加复杂性为代价。 对于大型数据库,进行差异备份的间隔可以比数据库备份更短,从而可降低丢失工作的可能性。 有关详细信息,请参见 Microsoft 网站上的以下页面:差异数据库备份

还应定期备份事务日志。 使用完全数据库备份模型时,恢复数据需要这些备份。 如果备份事务日志,则可以将数据库恢复到故障时间点或其他特定时间点。

事务日志备份   在事务日志中连续记录数据库中发生的所有修改以及执行每次修改的事务。 事务日志记录每个事务的启动、数据更改,必要时还记录用于撤消在该事务中所做修改的足够信息。 随着数据库中记录的操作的增多,日志也不断增大。

通过备份事务日志,可以将数据库恢复到以前的某个时间点。 例如,可以将数据库还原到输入不需要的数据之前的某个时间点,或是还原到某个故障时间点。 除数据库备份之外,恢复策略也必须包括事务日志备份。 有关详细信息,请参见 Microsoft 网站上的以下页面:使用事务日志备份

事务日志备份所使用的资源通常比完全备份少。 因此,创建事务日志备份可以比创建完全备份更加频繁,从而降低丢失数据的风险。 不过,有时事务日志备份要比完全备份还大。 例如,数据库可能具有很高的事务比率,从而导致事务日志迅速增大。 在这种情况下,应更加频繁地创建事务日志备份。 有关详细信息,请参见 Microsoft 网站上的以下页面:完整事务日志疑难解答

可执行以下类型的事务日志备份:

  • 纯日志备份只包含某个时间段的事务日志记录,不包括任何批量更改。

  • 批量日志备份包含由批量操作更改的日志和数据页。 不允许执行时间点恢复。

  • 尾日志备份是从可能损坏的数据库中提取出来的,以捕获尚未备份的日志记录。 在发生故障后提取尾日志备份,以防止工作丢失,该备份中可以包含纯日志数据也可以包含批量日志数据。

由于数据同步对于 Team Foundation Server 的成功还原至关重要,因此如果您正在手动配置备份,则应将标记的事务用作备份策略的一部分。 有关详细信息,请参见配置备份日程安排和计划手动备份 Team Foundation Server

服务备份(应用层)

必须对逻辑应用层执行的唯一备份是 Reporting Services 的加密密钥。 如果您使用“计划的备份”功能来备份您的部署,则此密钥将作为计划的一部分进行备份。 您可能认为必须备份用作团队项目门户网站的网站。 如果您将 SharePoint 产品集成为 Team Foundation Server 部署的一部分,则这些门户网站会作为 Team Foundation Server 和 SharePoint 产品数据库备份的一部分进行备份。 但是,如果您指定的网站不是使用集成的 Web 应用程序创建的,则您必须手动备份和还原这些站点。 另外,如果具有对 SharePoint 产品或服务的任何自定义,则还必须备份这些自定义,或用其他方法记录这些自定义以便可以在新服务器上进行重现。

尽管备份应用层比备份数据层更加容易,但在还原应用层时必须执行许多步骤。 必须为 Team Foundation 安装其他应用层、重定向团队项目集合以使用新的应用层并重定向团队项目的门户网站。

默认数据库名称

如果不自定义数据库的名称,则可以使用下表来标识在 Team Foundation Server 的部署中使用的数据库。 如之前所述,并非所有部署都包含所有这些数据库。 例如,如果 Team Foundation Server 未配置 Reporting Services,则不会有 ReportServer 或 ReportServerTempDB 数据库。 同样,如果未将 Team Foundation Server 配置为支持实验室管理,也不会有名为 VirtualManagerDB 的 System Center Virtual Machine Manager (SCVMM) 数据库。 此外,Team Foundation Server 所使用的数据库可能跨 SQL Server 的多个实例或跨多个服务器分布。

备注

默认情况下,前缀 TFS_ 将添加到安装或运行 Team Foundation Server 期间自动创建的所有数据库的名称。

数据库

说明

TFS_Configuration

Team Foundation Server 的配置数据库包含部署的目录、服务器名称和配置数据。 此数据库的名称中,TFS_Configuration 之间可能包含其他字符,如 Team Foundation Server 的安装人员的用户名。 例如,该数据库的名称可以是 TFS_UserNameConfiguration。

TFS_Warehouse

仓库数据库包含用于生成 Reporting Services 所用仓库的数据。 此数据库的名称中,TFS_Warehouse 之间可能包含其他字符,如 Team Foundation Server 的安装人员的用户名。 例如,该数据库的名称可以是 TFS_UserNameWarehouse。

TFS_CollectionName

团队项目集合的数据库包含该集合中团队项目的所有数据。 此类数据包括源代码、生成配置以及实验室管理配置。 集合数据库的数量与集合的数量相等。 例如,如果部署中有三个集合,则必须备份三个集合数据库。 各数据库名称的 TFS_ 和 CollectionName 之间可能包含其他字符,如创建该集合的人员的用户名。 例如,该集合数据库的名称可以是 TFS_UserNameCollectionName。

TFS_Analysis

SQL Server Analysis Services 的数据库包含 Team Foundation Server 部署的数据源和多维数据集。 此数据库的名称中,TFS_Analysis 之间可能包含其他字符,如 Analysis Services 的安装人员的用户名。 例如,该数据库的名称可以是 TFS_UserNameAnalysis。

备注

您可以备份此数据库,但必须从还原的 TFS_Warehouse 数据库重新生成仓库。

ReportServer

Reporting Services 的数据库包含 Team Foundation Server 部署的报表和报表设置。

备注

如果 Reporting Services 安装在 Team Foundation Server 之外的服务器上,则此数据库可能不在 Team Foundation 的数据层服务器上。在这种情况下,您必须从 Team Foundation Server 对它进行单独的配置、备份和还原。但是,您应该同步数据库的维护操作以避免同步错误。

ReportServerTempDB

在运行特定报表时,由 Reporting Services 的临时数据库临时存储信息。

备注

如果 Reporting Services 安装在 Team Foundation Server 之外的服务器上,则此数据库可能不在 Team Foundation 的数据层服务器上。在这种情况下,您必须从 Team Foundation Server 对它进行单独的配置、备份和还原。但是,您应该同步数据库的维护操作以避免同步错误。

WSS_Config

SharePoint 产品的配置数据库包含所有站点的列表,例如内容数据库、网站模板、自定义 Web 部件以及其他来自 SharePoint 管理中心的设置。

备注

手动备份或还原 SharePoint 产品使用的数据库时,不应使用标记的事务。但是,为帮助避免发生同步错误,应尝试同步 SharePoint 产品和 Team Foundation Server 的备份和还原计划。有关详细信息,请参见为 SharePoint Foundation 创建备份计划

WSS_Content

SharePoint 产品的内容数据库包含项目团队门户网站中的实际内容。

备注

此数据库的名称将随着两个因素而变化:一是所安装的 SharePoint 产品的版本,二是安装人员是否对该名称进行了自定义。手动备份或还原 SharePoint 产品使用的数据库时,不应使用标记的事务。但是,为帮助避免发生同步错误,应尝试同步 SharePoint 产品和 Team Foundation Server 的备份和还原计划。有关详细信息,请参见为 SharePoint Foundation 创建备份计划

WSS_AdminContent

SharePoint 产品的管理数据库包含用户、角色和数据库的安全信息。

备注

手动备份或还原 SharePoint 产品使用的数据库时,不应使用标记的事务。但是,为帮助避免发生同步错误,应尝试同步 SharePoint 产品和 Team Foundation Server 的备份和还原计划。有关详细信息,请参见为 SharePoint Foundation 创建备份计划

VirtualManagerDB

SCVMM 的管理数据库包含您在 SCVMM 管理员控制台中查看的信息,如虚拟机、虚拟机主机、虚拟机库服务器及其属性。

备注

如果 SCVMM 安装在 Team Foundation Server 之外的服务器上,则此数据库可能不在 Team Foundation 的数据层服务器上。在这种情况下,您必须从 Team Foundation Server 对它进行单独的配置、备份和还原。但是,您应使用标记的事务并同步数据库的维护,以避免发生同步错误。

请参见

概念

备份和还原 TFS

其他资源

将部署还原至新硬件