将数据还原到相同位置
你可以用备份将数据还原到该数据备份自的相同服务器和 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 部署组织的,如下图所示:
如果你的拓扑与此示例不完全相同,则可能必须调整此过程中的步骤以便成功执行。 例如,如果你的部署中的所有组件都安装在单个物理服务器上,则会在该服务器上执行所有过程。 如果团队项目集合的数据库部署在多个服务器上,则必须在相应服务器上执行这些步骤以还原每个集合数据库。 有关每台服务器上可以部署哪些组件的详细信息,请参阅以下主题:
主题内容
所需权限
停止 TFS 使用的服务
重命名要还原的数据库
还原 Team Foundation 数据库
更新所有服务帐户
还原仓库
清除服务器上的数据缓存
重新启动 Team Foundation Server 使用的服务
刷新客户端计算机上的数据缓存
所需权限
若要执行此过程,你必须是以下组的成员或具有以下权限:
是运行 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 使用的服务
停止服务可帮助避免在还原过程中发生数据丢失或损坏,尤其是在你重命名数据库时。
在运行 Team Foundation 的应用层服务的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。
键入以下命令:
TFSServiceControl quiesce
有关详细信息,请参阅TFSServiceControl 命令。
重命名要还原的数据库
若要使用“还原”向导还原 Team Foundation Server 使用的数据库,你必须先将转为脱机,然后重命名。
停止 Team Foundation Server 使用的数据库
打开**“SQL Server Management Studio”**。
备注
有关如何还原数据库的详细信息,请参阅 Microsoft 网站上的以下页面:实现 SQL Server 数据库还原方案。
**“连接到服务器”**对话框打开。
在**“服务器类型”中,选择“数据库引擎”**。
在**“服务器名称”中,选择或键入数据层服务器和数据库实例的名称,然后选择“连接”**。
备注
如果 SQL Server 安装在群集上,则服务器名称是该群集的名称而非计算机名称。
此时将打开 SQL Server Management Studio。
展开**“数据库”**节点,以显示构成 Team Foundation 数据层的数据库的列表。
重命名并随后停止要还原的每个数据库,具体操作请遵循适用于你的 SQL Server 版本的指南。 为数据库指定名称,指示它是你将用还原的版本替换的旧数据库版本。 例如,可将 TFS_DefaultCollection 重命名为 TFS_DefaultCollection_Old。
还原 Team Foundation 数据库
你可通过使用 TFS 的管理控制台中的“还原”向导还原 Team Foundation Server 的数据。 “还原”向导也可还原用于报告的加密密钥。
还原数据库
打开 TFS 的管理员控制台并导航到**“计划的备份”**以启动“还原”向导。
指定备份集的路径并选择要用于还原的集。
完成向导并还原数据库。
更新所有服务帐户
必须更新 Team Foundation Server 的服务帐户 (TFSService) 和数据源帐户 (TFSReports)。 即使这些帐户未进行更改,也必须更新信息,以确保帐户的标识和格式正确。
更新服务帐户
在运行 SQL Server Reporting Services 的服务器上,打开“计算机管理”,然后启动以下组件(如果这些组件尚未启动):
ReportServer 或 ReportServer$InstanceName(应用程序池)
SQL Server Reporting Services (TFSINSTANCE)
在应用层服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\ Microsoft Team Foundation Server 12.0\Tools。
在命令提示符处,输入以下命令来为 Team Foundation 添加服务帐户,其中 DatabaseName 是配置数据库的名称(默认情况下,为 TFS_Configuration):
**TfsConfig Accounts /add /AccountType:ApplicationTier /account:**AccountName
有关如何使用此命令的详细信息,请参阅 Accounts 命令。
如果部署使用报表服务器的数据源帐户以及 Team Foundation Server Proxy 的代理帐户,请使用 Accounts 命令添加这些资源。
重新生成仓库
你可以重新生成数据仓库,而不是还原 TFS_Warehouse 和 TFS_Analysis 数据库。 如果部署包含大量数据,则需要很长时间才能重新生成仓库。 但是,该策略可帮助确保所有数据都正确同步。 重新生成仓库时,Team Foundation Server 将创建该仓库的实例,然后你必须使用操作存储区中的数据填充该实例。
备注
如果在上一节中恢复了 TFS_Warehouse 和 TFS_Analysis 数据库,则不必执行以下过程。
重新生成仓库
在运行 Team Foundation 的应用层服务的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。
输入以下命令:
TFSConfig rebuildwarehouse /all /ReportingDataSourcePassword:密码
其中,Password 是 Reporting Services (TFSReports) 的数据源帐户的密码。
等到命令成功完成。
备注
如果命令未成功完成,则应验证你是否具有所有必需的权限。有关详细信息,请参阅Troubleshooting the Data Warehouse。
在报表服务器上,打开 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 服务。
单击**“GetProcessingStatus”,然后单击“调用”**。
重要
该服务应对所有作业返回值“空闲”,指示当前未处理多维数据集。如果返回其他值,则请重复此步骤,直到所有作业返回“空闲”。
在**“WarehouseControlWebService”页上,单击“ProcessAnalysisDatabase”,然后选择“调用”**。
此时将打开一个浏览器窗口。 当该服务成功启动多维数据集的处理时,会返回**“True”;如果未成功,或当前正在处理多维数据集,则返回“False”**。
若要确定多维数据集的处理时间,请返回**“WarehouseControlWebService”页,选择“GetProcessingStatus”,然后选择“调用”**。
当**“GetProcessingStatus”服务针对所有作业都返回值“空闲”**时,处理完成。
在 Team Foundation 应用层服务器上,打开“Computer Management”,并启动 Visual Studio Team Foundation Server 后台作业服务。
清除服务器上的数据缓存
Team Foundation 部署的每台应用程序层服务器均使用文件缓存,以便用户可从数据层服务器中快速下载文件。 还原部署时,应清除每台应用层服务器上的缓存。 否则,当用户从版本控制下载文件时,不匹配的文件 ID 可能会导致问题。 如果你的部署使用 Team Foundation Server 代理,还必须清除每台配置为代理的服务器上的数据缓存。
备注
通过清除数据缓存,你可帮助避免下载版本控制中文件的错误版本。你应定期执行此操作,除非在还原期间更换部署中的所有硬件。如果你要替换所有硬件,则可跳过此过程。
清除数据缓存
在运行 Team Foundation 的应用层服务或配置有 Team Foundation Server 代理的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Application Tier\Web Services\_tfs_data。
删除 _tfs_data 目录中的所有内容。
对你部署中的每台应用层服务器和正在运行 Team Foundation Server 代理的每台服务器重复这些步骤。
重新启动 Team Foundation Server 使用的服务
还原数据之后,必须重新启动服务才能将服务器恢复到操作状态。
重新启动 Team Foundation Server 使用的服务
在运行 Team Foundation 的应用层服务的服务器上,打开“命令提示符”窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。
输入以下命令:
TFSServiceControl unquiesce
有关详细信息,请参阅TFSServiceControl 命令。
刷新客户端计算机上的缓存
刷新客户端计算机上用于跟踪工作项的缓存
在新服务器上打开 Internet Explorer。
在地址栏中,输入下面的地址以连接到**“ClientService”**Web 服务:
http://PublicURL/VirtualDirectory:8080/WorkItemTracking/v3.0/ClientService.asmx
备注
即使你是使用管理员凭据登录的,也可能需要以管理员身份启动 Internet Explorer,同时可能会提示输入凭据。
选择**“StampWorkitemCache”,然后选择“调用”**。
备注
StampWorkitemCache 方法不返回任何数据。
刷新客户端计算机上的版本控制缓存
在客户端计算机上,使用管理权限打开“命令提示符”窗口,然后将目录更改为 Drive:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE。
在命令提示符处输入以下命令,包括含有新服务器的服务器名称和端口号的集合 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 中的服务帐户和依赖项