移动或克隆 Team Foundation Server(硬件移动)

你可以移动或克隆 Team Foundation Server (TFS) 软件的部署。 你可以将 TFS 从一台计算机移至另一台计算机,方法是将其还原到新的硬件(也称为基于还原的移动)。 例如,你可能需要将 TFS 移至容量更大或处理速度更快的服务器中,或者你担心当前运行 TFS 的硬件的可靠性。 通过将 TFS 移动到新服务器中,你可以更改运行 TFS 的硬件,而不会丢失任何项目历史记录。

要克隆 TFS 部署,请执行与移动和附加移动相同的步骤。 当计划停止使用原始硬件和 TFS 部署时,可以执行移动。 当打算在移动原始 TFS 实例后继续使用时,可以执行克隆。

重要

在某些情况下,你可能需要更改 TFS 部署及其硬件的域。更改域是一项基于环境的移动,你绝不应合并两个移动类型。先完成硬件移动,然后再更改环境。

要移动或克隆 TFS,请执行以下步骤:

  1. 检查你的权限

  2. 备份数据库并安装软件

    1. 备份数据库和加密密钥

    2. 在新数据层服务器上安装和配置 SQL Server

    3. 在新应用层服务器上安装和配置软件

  3. 将 TFS 数据库还原到新的硬件

    1. 还原 TFS 数据库

    2. 将 SharePoint 产品重定向到内容数据库的新位置

    3. (克隆选项)重新配置服务器 ID 并重新映射数据库

  4. 更新新应用程序层服务器的配置

    1. 配置新的应用程序层

    2. 更新 Team Foundation Server URL

    3. 更新所有服务帐户

    4. 更新生成服务器

    5. 在 TFS 中配置 SharePoint Web 应用程序

    6. 配置 Reporting Services 和 SQL Server Analysis Services

  5. 验证权限、通知用户并配置备份

    1. 验证用户、组、团队和服务帐户的权限

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

    3. 通知用户

    4. 配置备份

1.检查你的权限

你需要是两个硬件集(旧的和新的)的管理员。 此外,你需要成为 TFS 和部署所依赖的所有软件的管理员(或具有同等权限):SQL Server、报告、SharePoint 产品(如果部署使用报告或 SharePoint),以及其他所有与你的部署进行交互操作的软件(例如,Project Server)。

  • 确保你是以下组的成员:

    • 服务器:Administrators(本地管理员组或权限相同者)

    • TFS:Team Foundation Administrators 和管理控制台用户

    • SQL Server:sysadmin

    • SharePoint 产品:场管理员(如果你的 TFS 部署与 SharePoint 产品集成)

如果你不是其中一个或多个组的成员,请立刻获取权限

2.备份和安装

首先,备份你的 TFS 数据库,然后在新硬件上安装软件。

2-a.备份数据库和 SQL Server Reporting Services 加密密钥

  1. 打开 TFS 的管理控制台,并在**“计划的备份”**页上,执行完整备份。 该备份将备份你在备份计划中对备份进行的任何配置,但它将立即执行此操作,而不是根据计划的时间执行。 如果你的部署使用报告,则可将加密密钥备份为该备份集的一部分进行备份。

    你可以在作业完成时关闭窗口。

    (如果你未配置备份,则需先创建一个计划,然后才能执行完整备份。)

  2. 完成备份后,请验证该备份在存储设备或网络共享中是否可用,以及你是否可从新硬件访问此备份。

2-b.在新数据层服务器上安装和配置 SQL Server

  • 在新服务器上安装 SQL Server,并确保其正常运行。 如果以前的部署使用了报告,请确保包含报告和分析服务组件。 你必须安装与以前使用的相同版本,包括 Service Pack 和累积更新级别。

    安装 SQL Server 2008 R2 - 功能

    或者,你可以在安装了匹配版本的服务器上创建 SQL Server 实例,并将 TFS 数据库还原到该实例中,但这需要在还原后进行更多配置。

    有关安装和配置 SQL Server 的选项的详细信息,请转到此处

    安装 SQL Server 后,如果你的部署包含报告,请打开 SQL Server Management Studio 并分离 ReportServer 和 ReportServerTempDB 数据库。 否则,你可能无法使用你为 TFS 数据库创建的备份来还原这些数据库。

    还原前,必须分离现有数据库

2-c.在新应用层服务器上安装和配置软件

若要为 TFS 配置一台或多台新服务器,你必须先安装和配置所需的支持软件。 此软件包括下列组件:

  • 你的部署配置所支持的操作系统

  • SharePoint 产品的一个支持版本(如果你的部署与 SharePoint 产品集成,并且你需要将它移动到与 TFS 相同的服务器上)

备注

与安装新的 TFS 部署不同,在移动到新的服务器时,你无法将 SharePoint 产品 作为标准单一服务器或高级选项的一部分进行安装。你必须手动安装在以前的部署中使用的 SharePoint 产品的相同版本,或按照你的 SharePoint 产品的版本指南进行操作,以将其部署单独移动到新的硬件中。

在新环境中安装和配置 Windows、IIS(如果默认情况下未配置)和 SharePoint(如果使用),并确保服务器及其软件正常工作。

有关详细信息,请参阅 Team Foundation Server 的系统要求将 SharePoint 迁移至 TFS 的新硬件

3.将 TFS 数据库还原到新的硬件

若要使用还原工具还原 TFS 数据库,你必须在新的数据层服务器上安装 TFS(但不对其进行配置),然后在“计划的备份”节点中使用还原功能。

若要使用 SQL Server 还原工具手动还原 TFS 数据库,你可以这样做,但此过程的执行难度会更大。 此外,你还必须在新部署中手动静态退出数据库。 作为还原过程的一部分,TFS 中的还原向导会自动为你执行此操作,但该功能不是 SQL Server 的还原工具的一部分。

如果你使用将 SharePoint 迁移至 TFS 的新硬件中的步骤安装了 SharePoint Foundation 2013,并打算使用该服务器作为 TFS 的服务器,则该服务器上将配备安装位和管理控制台,你可以跳过下一个过程中的前两个步骤。

3-a.还原 TFS 数据库

  1. 启动 TFS 安装媒体。 在**“Team Foundation Server 安装程序”页上,选择“安装”**。

  2. 安装完成后,**“Team Foundation Server 配置中心”**将打开。 关闭它。

    管理控制台将自动打开并处于未配置状态。 这是预期情况。

  3. 若要启动还原向导,请打开 TFS 的管理控制台并打开**“计划的备份”**。

    启动还原向导

  4. 指定备份集的路径并选择停止旧部署后创建的集。

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

  5. 完成该向导并将数据库还原到新的 SQL Server 实例。

    数据库被还原至新服务器

3-b.将 SharePoint 产品重定向到内容数据库的新位置

如果你的部署使用 SharePoint 产品,则你已通过执行如上所述的将 SharePoint 迁移至 TFS 的新硬件中的步骤安装了以前的部署中使用的 SharePoint 产品的同一版本。 现在,在你将旧部署的内容数据库 (WSS_Content) 作为还原集的一部分还原到新服务器之后,你必须将运行 SharePoint 产品的服务器重定向到数据库的新位置。 此数据库必须正常运行,才能使用数据库的新位置重新配置 Team Foundation Server。

  1. 在运行 SharePoint Foundation 的新硬件上,以管理员身份打开命令提示符。

  2. 将目录更改为 Drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\bin,然后使用以下参数运行 stsadm.exe,其中 SharePointFoundationServerName 是你安装了 SharePoint Foundation 2013 的服务器的名称,SQLServerName 是你在其中还原 WSS_Content 数据库(作为还原 TFS 数据库的一部分)的服务器的名称:

    stsadm.exe –o addcontentdb –url http://SharePointFoundationServerName/sites -databasename WSS_Content -databaseserver SQLServerName
    
  3. 在该命令成功完成后,键入以下命令(其中,Domain\UserName 是用来安装和配置 SharePoint Foundation 2013 以便将其与 TFS 配合使用的帐户):

    stsadm.exe -o addpermissionpolicy -url http://SharePointFoundationServerName -userlogin Domain\UserName -permissionlevel "full control"
    

3-c.(克隆选项)重新配置服务器 ID 并重新映射数据库

如果你打算继续使用原始 TFS 实例,请对新应用程序层服务器执行下个步骤集。 这些是避免损坏一个或两个部署风险的必需步骤。 如果这两个服务器都是实时服务器,则可能在结束时出现损坏,特别是当它们指向相同 SharePoint 或报表资源时。

  1. 以管理员身份打开命令提示符窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。 打开一个“命令提示符”窗口,并输入:

  2. 运行 TFSConfig PrepareClone 命令以删除有关计划备份、SharePoint 和报告资源的信息。

    TFSConfig PrepareClone /SQLInstance:ServerName /DatabaseName:DatabaseName /notificationURL: ApplicationTierURL

  3. 运行 TFSConfig ChangeServerID 命令以更改与数据库有关的服务器 GUID。 GUID 必须在 TFS 部署内唯一。

    TFSConfig ChangeServerID /SQLInstance:ServerName] /DatabaseName:ConfigurationDatabaseName [/ProjectCollectionsOnly] [/ConfigDBOnly] [/usesqlalwayson]

  4. 运行 TFSConfig RemapDBs 命令以便将克隆的 TFS 重定向到数据库。

    TFSConfig RemapDBs /DatabaseName:ServerName;DatabaseName /SQLInstances:ServerName1,ServerName2 [/AnalysisInstance:ServerName] [/AnalysisDatabaseName:DatabaseName] [/preview] [/continue] [/usesqlalwayson]

4.更新新应用程序层服务器的配置

对新的应用程序层服务器执行这些步骤。

4-a.配置新的应用程序层服务器

  1. 从 TFS 的管理控制台中,选择“配置安装的功能”以启动配置中心。

  2. 启动应用层专用配置向导,并在数据库中指定在其中还原 TFS 数据库的新的 SQL Server 实例。 从列表中选择 Tfs_Configuration 数据库。

    选择 SQL Server 和数据库备份集

  3. 在关闭向导的最后一页之前,请查找“i”符号。 它表示将来可能要引用的信息。 最后一页还包括配置日志的位置。

    记录所有问题和日志文件位置

4-b.更新 TFS URL

  1. 转到应用层节点,并查看通知和 Team Web Access URL。 请注意,它们仍指向旧部署的位置。 更新它们。

    通知和 Web URL 过期

  2. 使用新服务器的名称更新 URL 后,检查信息以确保其准确无误。

    服务器 URL 仍使用 localhost

4-c.更新所有服务帐户

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

  1. 以管理员身份打开命令提示符窗口,然后将目录更改为 Drive:\%programfiles%\Microsoft Team Foundation Server 12.0\Tools。

  2. 在命令提示符处,键入以下命令来为 Team Foundation 添加服务帐户,其中 DatabaseName 是配置数据库的名称(默认情况下,为 TFS_Configuration):

    **TfsConfig Accounts /add /AccountType:ApplicationTier /account:**AccountName **/SQLInstance:**ServerName **/DatabaseName:**DatabaseName

  3. 在命令提示符下键入以下命令,以添加数据源帐户:

    **TfsConfig Accounts /add /AccountType:ReportingDataSource /account:**AccountName **/SQLInstance:**ServerName **/DatabaseName:**DatabaseName

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

4-d.更新生成服务器

现在,你需要重定向生成服务器以指向已移动的 TFS 部署。

  1. 在每个生成服务器上,打开管理控制台并停止生成服务。

  2. 在生成服务的属性中,更新通信属性。

    停止服务,然后进行更改

4-d.配置 SharePoint Web 应用程序

如果你的部署使用 SharePoint 产品,并且将 SharePoint Foundation 2013 作为 TFS 移动的一部分移动,你可能需要将 TFS 重定向到新的 Web 应用程序。 即使你不这么做,你也应修复连接以帮助确保性能正常。

如果你不使用 SharePoint 产品作为部署的一部分,或者如果你的部署将继续使用旧的 SharePoint 服务器,则可以跳过此过程。

  • 打开管理控制台并导航到 SharePoint Web 应用程序。 如果 Web 应用程序仍引用旧站点,或者,如果新的部署使用的是与列出的 Web 应用程序不同的 Web 应用程序,请选择“更改并更新设置”。

    TFS 仍重定向到旧应用程序

    在信息正确的情况下,或在你对信息进行更正后,请选择“修复连接”。 这有助于确保一切正常工作。

4-e.配置 Reporting Services 和 Analysis Services

如果你的部署使用报表服务器,则必须将 Team Foundation Server 重定向到该服务器的位置,重新启动仓库并手动为 Analysis Services 重新生成数据库。 如果不使用报告,请跳过此过程。

  1. 转到“报告”节点。 列出的报表服务器值是旧的值,而不是新值,请编辑这些值。

    报表仍指向旧服务器

  2. 更改所有三个选项卡上的值以指向新服务器。 确保为新部署中的数据源帐户提供正确的信息。

    确保所有 3 个选项卡显示的信息都正确

  3. 选择**“启动作业”**来重启报告。

  4. 选择**“开始重新生成”**来重新生成仓库。

5.验证权限、通知用户并配置备份

移动到新硬件后,确保你的部署的所有用户、组和服务帐户都已使用在每台服务器上正确运行所需的权限进行了配置。 某些权限无法自动迁移,如 SQL Server 或本地计算机中的其他权限。 例如,Team Foundation 管理员必须是应用层服务器上**“Administrators”**组的成员才能打开管理控制台,因此,必须将他们手动添加到该组。

5-a.验证用户、组和服务帐户的权限

  • 登录到服务器,确保使用操作所需的权限配置了用户、组和服务帐户。 在项目组和团队中手动抽查成员资格,并验证这些组和团队是否具有你期望的权限。

  • 浏览到团队项目集合并确保该集合中的所有项目都按预期方式显示,还要确保这些项目中的用户能正常访问他们的工作项。

  • 打开 Team Web Access 并验证团队站点和团队是否按预期方式显示。

是否不确定有哪些预期的组和权限? 有关详细信息,请参阅向团队项目添加用户, 设置对团队项目集合的管理员权限, 设置 Team Foundation Server 的管理员权限Team Foundation Server 中的服务帐户和依赖项.

5-b.刷新客户端计算机上的数据缓存

  • 登录到服务器,并使用**“ClientService”**Web 服务强制客户端更新用于跟踪工作项和 Team Foundation 版本控制的缓存。

    https://ServerName:8080/tfs/WorkItemTracking/v3.0/ClientService.asmx
    

    有关详细信息,请参阅刷新客户端计算机上的数据缓存

    若要在所有用户下次登录时为其刷新整个缓存,请使用 witadmin rebuildcache 命令。

    备注

    如果你将数据库还原到其他时间点,则还需要刷新版本控制缓存,如刷新客户端计算机上的数据缓存中所述。

5-c.通知用户

现在,你已移动 TFS,你将需要告知用户如何连接到移动后的部署。 具体而言,你将需要为用户提供以下信息:

  • 新服务器的名称和 Team Web Access 的 URL,以便他们可以重新连接到他们的项目

  • 报告的新数据库名称,如果报告是部署的一部分

  • SharePoint 的新 URL,如果 SharePoint 是部署的一部分

  • 如果他们是使用 Git 的团队项目的成员,则为有关如何针对该项目的每个存储库更新其本地拥有的每个克隆的说明。 具体而言,他们必须对每个克隆运行以下命令:

    git remote set-url <remote name> <new URL>
    

    用户可通过从“资源管理器”选项卡浏览团队项目来查看每个克隆的 URL。

    复制 URL 以手动克隆存储库

    此处了解有关 Git 的更多信息。

5-d.配置新 TFS 实例上的备份

在管理控件台上,转到“计划的备份”节点并重新配置计划的备份以便在新服务器上备份 TFS 数据库。

有关详细信息,请参阅配置备份日程安排和计划

问题解答

问:我希望更改域,而不是物理服务器。我是否可以执行此操作?

**答:**可以。 这被称为基于环境的移动,可在此处找到相关步骤。 你不应尝试将基于环境的移动与基于硬件的移动合并。 先完成硬件移动,然后再更改环境。

问:硬件移动后与 Project Server 集成需要哪些步骤?

答:可以,在你完成硬件移动后,你需要将 TFSAdmin ProjectServer /RegisterPWA 命令与 /tfs/force/pwa 选项一起使用以向 Project Server 重新注册 TFS。 你可从此处了解有关 TFS 与 Project Server 集成的详细信息。