将数据还原到相同位置

你可以用备份将数据还原到该数据备份自的相同服务器和 Team Foundation SQL Server 实例。 例如,你可能需要将一组损坏的数据库还原到其已知的最后良好状态。

提示

如果你的原始部署使用的是 SQL Server Enterprise Edition 或 SQL Server Datacenter Edition,并且你要将数据库还原到运行 Standard Edition 的服务器,则必须使用通过禁用 SQL Server 压缩生成的备份集。只有禁用了数据压缩,才能成功地将 Enterprise Edition 或 Datacenter Edition 数据库还原到运行 Standard Edition 的服务器。若要禁用压缩,请按照 Microsoft 知识库文章中的步骤进行操作。

如果要将数据还原到其他服务器或其他 SQL Server 实例,请参阅将部署还原至新硬件

备注

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

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

适中数据库拓扑的示例

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

主题内容

  1. 所需权限

  2. 停止 TFS 使用的服务

  3. 重命名要还原的数据库

  4. 还原 Team Foundation 数据库

  5. 更新所有服务帐户

  6. 还原仓库

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

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

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

所需权限

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

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

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

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

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

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

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

有关详细信息,请参阅 Microsoft 网站上的以下页面:用户帐户控制

停止 TFS 使用的服务

停止服务可帮助避免在还原过程中发生数据丢失或损坏,尤其是在你重命名数据库时。

  1. 在运行 Team Foundation 的应用层服务的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。

  2. 键入以下命令:

    TFSServiceControl quiesce
    

    有关详细信息,请参阅TFSServiceControl 命令

重命名要还原的数据库

若要使用“还原”向导还原 Team Foundation Server 使用的数据库,你必须先将转为脱机,然后重命名。

停止 Team Foundation Server 使用的数据库

  1. 打开**“SQL Server Management Studio”**。

    备注

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

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

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

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

    备注

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

    此时将打开 SQL Server Management Studio。

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

  5. 重命名并随后停止要还原的每个数据库,具体操作请遵循适用于你的 SQL Server 版本的指南。 为数据库指定名称,指示它是你将用还原的版本替换的旧数据库版本。 例如,可将 TFS_DefaultCollection 重命名为 TFS_DefaultCollection_Old。

还原 Team Foundation 数据库

你可通过使用 TFS 的管理控制台中的“还原”向导还原 Team Foundation Server 的数据。 “还原”向导也可还原用于报告的加密密钥。

还原数据库

  1. 打开 TFS 的管理员控制台并导航到**“计划的备份”**以启动“还原”向导。

    启动还原向导

  2. 指定备份集的路径并选择要用于还原的集。

    选择网络路径,然后选择还原集

  3. 完成向导并还原数据库。

    数据库被还原至新服务器

更新所有服务帐户

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

更新服务帐户

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

    • ReportServer 或 ReportServer$InstanceName(应用程序池)

    • SQL Server Reporting Services (TFSINSTANCE)

  2. 在应用层服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\ Microsoft Team Foundation Server 12.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 的应用层服务的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。

  2. 输入以下命令:

    TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword:密码

    其中,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. 单击**“GetProcessingStatus”,然后单击“调用”**。

    重要

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

  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 代理的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Application Tier\Web Services\_tfs_data。

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

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

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

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

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

  1. 在运行 Team Foundation 的应用层服务的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.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. 在客户端计算机上,使用管理权限打开“命令提示符”窗口,然后将目录更改为 Drive:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE。

  2. 在命令提示符处输入以下命令,包括含有新服务器的服务器名称和端口号的集合 URL:

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

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

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

    有关详细信息,请参阅Workspaces Command

请参见

概念

Team Foundation Server 权限参考

Team Foundation Server 体系结构

Team Foundation Server 中的服务帐户和依赖项

还原数据库

还原 Lab Management 组件

其他资源

将部署还原至新硬件