将数据还原到相同位置

您可以用备份将数据还原到该数据备份自的相同服务器和 Team Foundation SQL Server 实例。例如,您可能需要将一组损坏的数据库还原到其已知的最后良好状态。若要帮助确保数据恢复可成功,应将标记的事务作为备份策略的一部分进行配置。有关更多信息,请参见Back Up Team Foundation Server

提示提示

有一个备份和还原增强工具可用于 Team Foundation server 2012。使用该工具可大大简化部署的维护和还原。可增强工具的此处 当前版本。

若要执行本主题中的过程,您的服务器硬件必须能够正常工作。如果您的部署使用 SharePoint 产品 或 Microsoft Project Server,则必须执行附加步骤来备份和还原其数据库,本主题中的过程对此进行了详细介绍。如果要将数据还原到其他服务器或其他 SQL Server 实例,请参见将单服务器部署还原至新硬件 [教程]

说明说明

如果在部署中使用 SharePoint 产品,则在还原数据时,不必还原基于每个团队项目的数据自动生成的网站。团队项目门户网站的数据会包含在还原的数据库中。

根据 Team Foundation Server 的安装和配置方式,将数据还原到原始服务器的步骤会有所不同。简单起见,本主题中的过程是针对中等复杂度的 Team Foundation Server 部署组织的,如下图所示:

适中数据库拓扑的示例

如果您的拓扑与此示例不完全相同,则可能必须调整此过程中的步骤以便成功执行。例如,如果您的部署中的所有组件都安装在单个物理服务器上,则会在该服务器上执行所有过程。如果团队项目集合的数据库部署在多个服务器上,则必须在相应服务器上执行这些步骤以还原每个集合数据库。有关每台服务器上可以部署哪些组件的更多信息,请参见以下主题:

主题内容

  1. 需要的权限

  2. 停止 Team Foundation Server 使用的服务

  3. 还原 Team Foundation 数据库

  4. 更新所有服务帐户

  5. 还原仓库

  6. 清除服务器上的数据缓存

  7. 重新启动 Team Foundation Server 使用的服务

  8. 刷新客户端计算机上的数据缓存

需要的权限

若要执行此过程,您必须是以下组的成员或具有以下权限:

  • 是运行 Team Foundation 的管理控制台的服务器上**“Administrators”**安全组的成员。

  • 是**“SQL Server System Administrator”安全组的成员,或者在承载这些数据库的 SQL Server 实例上,您的“SQL Server 执行备份和创建维护计划”权限必须设置为“允许”**

  • 是 Team Foundation 数据库实例和仓库数据库的 Analysis Services 实例的 sysadmin 安全组的成员。

  • 是 TFS_Warehouse 数据库的授权用户。

  • 是 TFSEXECROLE 数据库角色的成员。

  • 如果部署使用的是 SharePoint 产品,则必须是要在其中还原 SharePoint 产品数据库的场中**“Farm Administrators”**组的成员

除了这些权限之外,对于运行 Windows Server 2008 的计算机,您可能还必须满足以下要求:

  • 若要使用命令行过程,您可能必须通过以下操作打开提升的命令提示符:单击**“开始”,右击“命令提示符”,然后单击“以管理员身份运行”**。

  • 若要使用需要 Internet Explorer 的过程,您可能必须通过以下操作以管理员身份启动 Internet Explorer:单击**“开始”,单击“所有程序”,右击“Internet Explorer”,然后单击“以管理员身份运行”**。

  • 若要访问 SQL Server Reporting Services 的报表管理器、报表或网站,您可能必须将这些站点添加到 Internet Explorer 的受信任站点列表中,或者以管理员身份启动 Internet Explorer。

有关更多信息,请参见 Microsoft 网站上的以下页面:用户帐户控制

停止 Team Foundation Server 使用的服务

停止 Team Foundation Server 使用的服务

  1. 在运行 Team Foundation 应用层服务的服务器上,打开命令提示符窗口,将目录切换到 驱动器:\%programfiles%\Microsoft Team Foundation Server 11.0\Tools。

  2. 输入以下命令:

    TFSServiceControl quiesce

    有关更多信息,请参见TFSServiceControl 命令

还原 Team Foundation 数据库

停止服务后,可以使用随 SQL Server 一起提供的还原工具来还原 Team Foundation 数据。

警告说明警告

必须将所有数据库还原到同一个时间点,否则这些数据库将不同步。以下过程假定您使用标记的事务来帮助确保 Team Foundation Server 使用的数据库同步。有关更多信息,请参见Back Up Team Foundation Server。如果您的部署使用 SharePoint 产品,则应遵循部署中的该产品版本的指南。有关更多信息,请参见备份和恢复 (SharePoint Foundation 2010)保护和恢复 (SharePoint Server 2010)保护和还原服务器场 (Windows SharePoint Services 2007)。如果您的部署与 Microsoft Project Server 集成,则应遵循部署中的该产品版本的指南。有关更多信息,请参见还原数据库 (Project Server 2007)还原数据库 (Project Server 2010)

打开“还原数据库”对话框

  1. 登录要还原数据库的服务器。

  2. 依次选择**“开始”“所有程序”“Microsoft SQL Server 2008”“SQL Server Management Studio”**。

    说明说明

    有关如何还原数据库的更多信息,请参见 Microsoft 网站上的以下页面:实现 SQL Server 数据库还原方案

    **“连接到服务器”**对话框打开。

  3. 在**“服务器类型”中,选择“数据库引擎”**。

  4. 在**“服务器名称”中,选择或键入数据层服务器和数据库实例的名称,然后选择“连接”**。

    说明说明

    如果 SQL Server 安装在群集上,则服务器名称是该群集的名称而非计算机名称。

    将打开 SQL Server Management Studio。

  5. 展开**“数据库”**节点,以显示构成 Team Foundation 数据层的数据库的列表。

在以下数据库源自的每个服务器上,为每个数据库完成下一个过程“还原数据库”:

在承载 Team Foundation Server 数据库的服务器上:

  • TFS_Configuration

    说明说明

    此数据库名称的 TFS_Configuration 之间可能包含其他字符。

  • TFS_CollectionName

    说明说明

    每个团队项目集合都有自己的数据库。例如,如果有五个团队项目集合,则有五个数据库,每个数据库可根据团队项目集合名称进行区别。这些数据库可能在相同或不同的 SQL Server 实例上,也可能在不同的物理服务器上。您必须备份每个数据库,然后将每个数据库还原到其源自的服务器和实例。

  • VirtualManagerDB

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

    说明说明

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

在运行 SQL Server Reporting Services 的服务器上(如果您的部署中配置了一个这样的服务器):

  • ReportServer

    说明说明

    如果使用了命名实例,此数据库将命名为“ReportServer$实例名称”。

  • ReportServerTempDB

    说明说明

    如果您使用的是命名实例,则此数据库将命名为“ReportServerTempDB$实例名称”。

在运行 SharePoint 产品的服务器上(如果您的部署中配置了一个或多个 SharePoint Web 应用程序):

  • SharePoint 产品的管理数据库 (WSS_AdminContent)(如果要恢复整个 SharePoint 产品部署)。

  • SharePoint 产品的配置数据库 (WSS_Config)。

  • SharePoint 产品的内容数据库 (WSS_Content)。

    说明说明

    包含 SharePoint 产品数据的数据库的名称将随着两个因素而变化:一是所安装的 SharePoint 产品的版本,二是安装人员是否对该名称进行了自定义。此外,如果 SharePoint 产品安装在与 Team Foundation Server 不同的服务器上,这些数据库可能不在数据层服务器上。如果数据库在其他服务器上,则必须从 Team Foundation Server 单独管理其备份、还原和配置。但是,您应该同步数据库的维护操作以避免同步错误。

    若要还原 SharePoint 产品使用的数据库,应遵循部署中该产品的版本指南。有关更多信息,请参见备份和恢复 (SharePoint Foundation 2010)保护和恢复 (SharePoint Server 2010)保护和还原服务器场 (Windows SharePoint Services 2007)

在运行 Microsoft Project Server 的一台或多台服务器上(如果已将您的部署与 Project Server 集成且必须将数据库还原到其他服务器):

如果不打算重新生成仓库:

  • TFS_Warehouse

    说明说明

    此数据库名称可能在 TFS_Warehouse 之间包含其他字符。

  • TFS_Analysis

有关这些数据库的更多信息,请参见了解备份 Team Foundation Server

还原数据库

  1. 在对象资源管理器中,突出显示**“Databases”, 打开其子菜单,然后单击“还原数据库”**。

    即会打开**“还原数据库”**对话框。

  2. 在**“到数据库:”** 指定要还原的数据库的名称,例如,TFS_Configuration。在**“还原的源”下方单击“源设备”,再选择省略号按钮(“…”**)。

  3. 在**“指定备份”对话框中,选择“添加”。为要还原的数据库指定备份文件的位置,然后选择两次“确定”**。

    必须按照创建顺序,首先还原完整备份,随后还原差异备份,然后还原事务日志备份。

  4. 在**“选择要还原的备份集”**下面,选中要还原的备份集的复选框。

    如果您使用标记的事务创建了备份集,请确保还原完整、差异和事务日志数据库。

  5. 在**“选择页”窗格中,选择“选项”,然后选中“覆盖现有数据库”**复选框。

  6. 在**“将数据库文件还原为”**列表中,确认路径与当前数据库路径相匹配。

  7. 在**“恢复状态”下面,选择“不对数据库执行任何操作,不回滚未提交的事务。无法还原其他事务日志。(RESTORE WITH RECOVERY),选择一个选项,然后单击“确定”**。

    将显示一个进度图标。

  8. 出现**“SQL Server Management Studio”对话框并确认成功还原后,选择“确定”返回到“对象资源管理器”**。

  9. 打开已还原数据库的快捷菜单并选择**“任务”“还原”,然后“事务日志”**。

    将打开**“还原事务日志”**窗口。

  10. 在**“常规”页上,确保相应数据库突出显示在“数据库”**列表中。

  11. 在**“选择要还原的事务日志”**下面,选中要还原的日志旁边的复选框。

  12. 在**“还原到”下面,选择“标记的事务”**。

    将打开**“选择标记的事务”**窗口。

  13. 在**“选择标记的事务以将还原停止在”列表中,选中要用于还原的事务标记旁边的复选框,然后选择“确定”**。

    重要说明重要事项

    为了成功还原数据,您必须对所有数据库使用具有相同日期和时间的相同事务标记。

  14. 在**“还原事务日志”窗口中,选择“确定”**。

    将显示一个进度图标。

  15. 出现**“SQL Server Management Studio”对话框并确认成功还原后,选择“确定”**。

    有关更多信息,请参见 Microsoft 网站上的以下页面应用事务日志备份

说明说明

如果还原了 Reporting Services 的数据库,则还必须还原这些数据库的加密密钥。

还原 Reporting Services 的加密密钥。

  1. 单击**“开始”“所有程序”“Microsoft SQL Server R2”“配置工具”,然后“Reporting Services 配置管理器”**。

  2. “Reporting Services 配置连接”,请指定服务器的名称,然后单击**“连接”**。

    在部署示例,在 “服务器名”,Jill 在 **“服务器名”**中输入 FABRIKAMPRIME。由于她使用了默认实例,则不需要更改默认的实例名称,MSSQLSERVER。

  3. “连接” 窗格中,单击**“加密密钥”,然后在加密密钥窗格中,单击“还原”**。

    将打开**“还原加密密钥”**窗口。

  4. “文件位置”,为加密密钥指定备份文件的位置。在 密码,请指定要使用的密码何时支持加密密钥,然后单击确定

  5. 在**“结果”中显示还原的状态。当“结果”**区域显示已还原加密密钥时,请关闭 Reporting Services 配置管理器。

更新所有服务帐户

必须更新 Team Foundation Server 的服务帐户 (TFSService) 和数据源帐户 (TFSReports)。即使这些帐户未进行更改,也必须更新信息,以确保帐户的标识和格式正确。

更新服务帐户

  1. 在运行 SQL Server Reporting Services 的服务器上,打开“计算机管理”,然后启动以下组件(如果这些组件尚未启动):

    • ReportServer 或 ReportServer$实例名称(应用程序池)

    • SQL Server Reporting Services (TFSINSTANCE)

  2. 在应用层服务器上,打开命令提示符窗口,将目录切换到“驱动器:\%programfiles%\ Microsoft Team Foundation Server 11.0\Tools”。

  3. 在命令提示符处,通过输入下面的命令为 Team Foundation 添加服务帐户,其中 DatabaseName 是配置数据库的名称(默认为 TFS_Configuration):

    **TfsConfig Accounts /add /AccountType:ApplicationTier /account:**AccountName

    有关如何使用此命令的更多信息,请参见 Accounts 命令

  4. 如果部署使用报表服务器的数据源帐户以及 Team Foundation Server Proxy 的代理帐户,请使用 Accounts 命令添加这些资源。

重新生成仓库

您可以重新生成数据仓库,而不是还原 TFS_WarehouseTFS_Analysis 数据库。如果部署包含大量数据,则需要很长时间才能重新生成仓库。但是,该策略可帮助确保所有数据都正确同步。重新生成仓库时,Team Foundation Server 将创建该仓库的实例,然后您必须使用操作存储区中的数据填充该实例。

说明说明

如果在上一节中恢复了 TFS_Warehouse 和 TFS_Analysis 数据库,则不必执行以下过程。

重新生成仓库

  1. 在运行 Team Foundation 应用层服务的服务器上,打开命令提示符窗口,将目录切换到 驱动器:\%programfiles%\Microsoft Team Foundation Server 11.0\Tools。

  2. 输入以下命令:

    TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword:Password

    其中,Password 是 Reporting Services (TFSReports) 的数据源帐户的密码。

  3. 等到命令成功完成。

    说明说明

    如果命令未成功完成,则应验证您是否具有所有必需的权限。有关更多信息,请参见Troubleshooting the Data Warehouse

  4. 在报表服务器上,打开 Internet Explorer,并在地址栏中输入以下字符串:

    https://localhost:8080/VirtualDirectory/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx

    对于 VirtualDirectory,请输入安装 Team Foundation Server 时指定的 Internet Information Services (IIS) 虚拟目录。默认情况下,此目录的名称为 tfs。

    将打开**“WarehouseControlWebService”**页。

    说明说明

    Microsoft Team Foundation Server 应用程序池必须运行才可提供仓库控制 Web 服务。

  5. 单击**“获取处理状态”,然后单击“调用”**。

    重要说明重要事项

    该服务应对所有作业返回值“空闲”,指示当前未处理多维数据集。如果返回其他值,则请重复此步骤,直到针对所有作业返回“空闲”

  6. 在**“WarehouseControlWebService”页上,单击“ProcessAnalysisDatabase”,然后选择“调用”**。

    此时将打开一个浏览器窗口。当该服务成功启动多维数据集的处理时,会返回**“True”;如果未成功,或当前正在处理多维数据集,则返回“False”**。

  7. 若要确定多维数据集是何时处理完毕的,请返回到**“WarehouseControlWebService”页,选择“GetProcessingStatus”,然后选择“调用”**。

    当**“GetProcessingStatus”服务针对所有作业都返回值“空闲”**时,处理完成。

  8. 在 Team Foundation 应用层服务器上,打开“Computer Management”,并启动 Visual Studio Team Foundation Server 后台作业服务。

清除服务器上的数据缓存

您 Team Foundation 部署的每台应用程序层服务器使用文件缓存,以便用户可从数据层服务器快速下载文件。还原部署时,应清除每台应用层服务器上的缓存。否则,当用户从版本控制下载文件时,不匹配的文件 ID 可能会导致问题。如果您的部署使用 Team Foundation Server 代理,还必须清除每台配置为代理的服务器上的数据缓存。

说明说明

通过清除数据缓存,可以帮助避免下载版本控制中文件的错误版本。您应定期执行此操作,除非在还原期间更换部署中的所有硬件。如果您正在替换所有硬件,可跳过此过程。

要清除数据缓存

  1. 在正运行 Team Foundation 的应用程序层服务或配置有 Team Foundation Server 代理的服务器上,打开“命令提示”窗口,并将目录更改为驱动器:\%programfiles%\Microsoft Team Foundation Server 11.0\Application Tier\Web Services\_tfs_data。

  2. 删除 _tfs_data 目录的所有内容。

  3. 在您部署中的每个应用层服务器和正在运行 Team Foundation Server 代理的每台服务器上重复这些步骤。

重新启动 Team Foundation Server 使用的服务

还原数据之后,必须重新启动服务才能将服务器恢复到操作状态。

重新启动 Team Foundation Server 使用的服务

  1. 在运行 Team Foundation 应用层服务的服务器上,打开命令提示符窗口,将目录切换到 驱动器:\%programfiles%\Microsoft Team Foundation Server 11.0\Tools。

  2. 输入以下命令:

    TFSServiceControl unquiesce

    有关更多信息,请参见TFSServiceControl 命令

刷新客户端计算机上的缓存

刷新客户端计算机上用于跟踪工作项的缓存

  1. 在新服务器上打开 Internet Explorer。

  2. 在地址栏中,输入下面的地址,连接到**“ClientService”**Web 服务。

    http://PublicURL/VirtualDirectory:8080/WorkItemTracking/v3.0/ClientService.asmx

    说明说明

    即使您是以管理员登录的,也可能需要以管理员身份启动 Internet Explorer,同时可能会提示输入凭据。

  3. 单击**“StampWorkitemCache”,然后单击“调用”**。

    说明说明

    StampWorkitemCache 方法不返回任何数据。

刷新客户端计算机上的版本控制缓存

  1. 在客户端计算机上用管理权限打开“命令提示”窗口,并将目录更改为:驱动器:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE。

  2. 在命令提示符处输入以下命令,包含该集合的 URL,其中包含服务器名称和应用层服务器的端口号:

    **tf workspaces /collection:http://**ServerName:Port/VirtualDirectoryName/CollectionName

    在部署示例,Jill 部署的其中一个需要刷新某个项目的版本控制缓存,而该项目是 DefaultCollection 集合成员,且该集合承载在 Team Foundation Server 的 FabrikamPrime 部署中。他键入以下字符:

    tf workspaces /collection:http://FabrikamPrime:8080/tfs/DefaultCollection

    有关更多信息,请参见Workspaces Command

请参见

概念

Team Foundation Server 权限

Team Foundation Server 体系结构

还原数据库

还原 Lab Management 组件

其他资源

Team Foundation Server 服务和服务帐户

将单服务器部署还原至新硬件 [教程]

Managing Data

Managing Team Foundation Server