移动项目集合

Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2013

备注

Azure DevOps Server 以前名为 Visual Studio Team Foundation Server。

可以将项目集合从 Azure DevOps Server 的一个部署移到另一个。 例如:

  • 你的组织中有多个 Azure DevOps Server 部署,并且你希望将集合移到另一个部署,以便更好地满足你的业务需求。
  • 需要将集合移动到具有其自己的 Azure DevOps Server 部署的远程办公室。
  • 你希望通过向其添加 SQL Server 的另一个实例来扩展 Azure DevOps Server 的部署,并且想要在实例之间分布现有集合。
  • 需要增量升级部署,方法是从运行早期版本的 Azure DevOps Server 的部署分离单个项目集合,然后将其移动到运行当前版本的 Azure DevOps Server 的服务器。 (这种情况的一个常见原因是,某些团队可能需要迁移到较新版本的 Azure DevOps Server,而另一些团队则必须保留在较旧版本的工具或项目中 ) 。在这种情况下,你还必须使用配置功能向导升级集合中的每个项目。 有关详细信息,请参阅在 Azure DevOps Server 升级后配置功能。 Azure DevOps Server 2019 的 "配置功能向导" 已弃用。 只能在 TFS 2018 和更早版本上运行向导。 Azure DevOps Services 上定义的项目将在每次服务升级时自动更新。

移动集合的步骤将取决于过去承载该集合的部署和要移至的目标部署的特定配置。 例如,如果将集合移至一个新域中,你将需要将该域中的用户添加到集合级别和项目级别的相应组中。 同样,如果将集合移动到使用不同 SharePoint web 应用程序的 Azure DevOps Server 部署,则需要将支持该集合的网站集数据库移到该 SharePoint web 应用程序,或者将支持该集合的 SharePoint web 应用程序添加到已将其移动到 Azure DevOps Server。

备注

TFS 2018 和更高版本已弃用与 Sharepoint 产品的集成。

以下是移动整个项目集合的方法。 若要移动集合的一部分,请参阅 拆分项目集合

必备条件

在开始移动前,确保你在服务器上、要移出的两个部署所使用的软件中以及你正在移至的软件中是管理员。 如果您不是管理员,请 添加为管理员。

1. 分离集合

在移动集合之前,请先将其从运行 Azure DevOps Server 的部署中分离出来。 不要跳过此步骤,这一点非常重要。 分离集合时,将停止所有作业和服务,然后停止集合数据库。 此外,分离过程会从配置数据库中复制特定于集合的数据,并将其保存为项目集合数据库的一部分。 此配置数据允许将集合数据库附加到不同的 Azure DevOps Server 部署。 如果该数据不存在,则不能将该集合附加到 Azure DevOps Server 的任何部署,除了它所源自的部署。

备注

分离集合将阻止用户访问该集合中的任何项目。

  1. 打开承载要移动的集合的服务器上 Azure DevOps 的管理控制台,并在 Project 集合 中突出显示该集合。

  2. 在 " 常规 " 选项卡上,选择 " 分离集合"。

    分离项目集合

    在常规选项卡上,选择后再分离

    分离 Project 集合向导 将打开。

  3. (可选) 在 "为 项目集合提供维护消息 " 页上的 " 维护消息" 中,为可能尝试连接到此集合中的项目的用户提供一条消息。

  4. 选择“下一页”。

  5. 在 " 查看将用于分离项目集合的设置 " 页上,查看详细信息。

  6. 若要更改任何设置,请选择 " 上一步"。 如果它们看起来是正确的,请选择 " 验证"。

  7. 所有就绪检查都成功完成后,选择 " 分离"。

  8. 在 " 监视项目集合分离进度" 页上,在所有进程都完成后,选择 " 下一步"。

    向导将显示你的进程

  9. (可选) 在 " 查看此项目集合的补充信息 " 页上,选择或记下日志文件的位置。

  10. 选择“关闭”。

    项目集合不再显示在管理控制台中的集合列表中。

    TFS 管理控制台没有显示已分离

2. 备份集合数据库

分离集合后,请备份其数据库以将其移至其他服务器。 若要执行此任务,请使用随 SQL Server 提供的工具。

显示以下选定内容的 "连接" 窗格的屏幕截图: FABRIKAM2014 > Tfs_TestProjects > 任务 > 备份。

重要

你只可以将数据库还原到相同或更新版本的 SQL Server。 无法将 SQL Server 数据库还原到较早版本的产品
如果你的原始部署使用的是 SQL Server Enterprise Edition 或 SQL Server Datacenter Edition,并且你要将数据库还原到运行 Standard Edition 的服务器,则必须使用通过禁用 SQL Server 压缩生成的备份集。 除非禁用数据压缩,否则无法将 Enterprise 或 Datacenter edition 数据库还原到运行 Standard edition 的服务器。 若要禁用压缩,请按照在Azure DevOps 数据库中禁用 SQL Server 数据压缩中的步骤操作。

3. 移动集合数据库

在移动集合的过程中,必须还原、复制或以其他方式将集合数据库移到 SQL Server 的实例,该实例配置为支持要将集合移动到 Azure DevOps Server 的部署。 您可以选择想要移动数据库的方法。

复制数据库向导的 "欢迎" 页的屏幕截图。

有关将数据库移至另一个 SQL Server 的实例的详细信息,请参阅:

4. 附加集合

还原集合数据库后,可以将该集合附加到 Azure DevOps Server 的首选部署。 如果要移动的部署使用报表,则将为作为过程的一部分附加的集合生成报表文件夹和默认报表。

备注

如果你的部署使用 SharePoint 产品,而 Azure DevOps Server 的服务帐户不是 "服务器场管理员" 组的成员,或者你的部署使用报表并且已创建了与以前部署的文件夹和路径完全相同的报表文件夹和路径,则在附加该集合时,将会出现警告。 这是预期的行为,你可以继续。

  1. 打开服务器上的 Azure DevOps 管理控制台,该服务器承载着要将集合移动到的部署的应用层。

  2. 选择 Project 集合,然后选择 "附加集合"。

    Azure DevOps Server 管理控制台,团队 Project 集合

    TFS 管理控制台,团队 Project 集合

    将打开 "附加 Project 集合" 向导

  3. 在 "选择要附加的项目集合数据库" 页上的 " SQL Server 实例" 中,提供服务器的名称和承载集合数据库的实例(如果尚未列出)。

    确保 SQL Server 实例正确

  4. 在 " 数据库 " 列表中,选择要附加的集合数据库,然后选择 " 下一步"。

  5. 在 " 输入项目集合信息 " 页上,在 " 名称 " 中提供集合名称(如果尚不存在)。

  6. (可选) 在 " 说明" 中,提供集合的说明。

  7. 选择“下一页”。

  8. 在 " 查看将用于附加项目集合的设置 " 页上,查看信息。

  9. 若要更改任何设置,请选择 " 上一步"。 如果所有设置都正确,请选择 " 验证"。

  10. 所有就绪检查都成功完成后,选择 " 附加"。

  11. 在 " 监视项目集合附加进度" 页上,在所有进程都完成后,选择 " 下一步"。

  12. (可选) 在 " 查看此项目集合的补充信息 " 页上,选择或记下日志文件的位置。

  13. 选择“关闭”。

    项目集合将显示在管理控制台中的集合列表中。 在其原始部署中支持此集合的 SharePoint web 应用程序将显示在 web 应用程序列表中。

    如果配置未完成,则停止收集

  14. (可选) 修改或删除 web 应用程序列表中的 web 应用程序。 有关详细信息,请参阅修改或删除 SharePoint web 应用程序和 TFS 之间的访问权限

5. 配置移动的项目集合

如果在同一域中移动了集合,并且想要使用以前支持该集合的同一 web 应用程序,则可以跳过此过程,并且 想要允许该集合的管理员访问此 Azure DevOps Server 的部署。

在移动集合后,使用适当的设置更新该集合的 web 应用程序和权限组。

配置移动的集合

  • 打开项目集合的每个选项卡,并根据需要修改设置,以反映与当前 Azure DevOps Server 上的资源位置相匹配的服务和位置。 对于 SharePoint 和报表资源,执行此步骤尤其重要。 如果你看到错误,请确保你的帐户具有项目集合管理员所需的权限,并且已根据需要添加任何其他项目集合管理员。

    有关此任务的信息,请参阅 修改项目集合设置项目集合的管理员权限

6. 配置项目

如果在同一域中移动了集合,并且想要允许该集合中项目的用户访问此 Azure DevOps Server 部署,则可以跳过此过程。

在为移动后的集合配置管理员之后,你或管理员必须向该集合中的项目添加用户和组。 根据你的部署,你可能还需要在 SharePoint 产品和 Reporting Services 中配置这些用户的权限。

将用户添加到项目

将资源添加到移动的项目

问题解答

问:我的 Azure DevOps Server 部署使用报表。 如何在移动集合时移动报表?

答: 首先,您需要保存或导出要从在其原始部署中支持集合的 Report Server 中移动的任何报表。 然后你将需要将每个报表手动上载到报表服务器,此服务器将支持移动后的集合,这可能是一个很长的过程。 请考虑你是否需要上载所有报表,或者报表子集能否满足你的业务需求。 你不必上载所有报表或任何报表,但是,在移动过程完成之后,只能使用已上载的报表。

在移动集合后,还需要在原始部署上重新生成仓库和 analysis services 多维数据集,因此原始部署不会继续尝试为不再存在的集合构建报表。

移动报表

  1. 导出或保存要从报表服务器移出的报表,此服务器在其原始部署中支持集合。 有关详细信息,请参阅 导出报表保存报表

  2. 在报表管理器中,将每个要移动的报表上载到报表服务器上的相应文件夹,此服务器在其新环境中支持集合。

    有关详细信息,请参阅Upload 文件到文件夹

  3. 在报表管理器中,编辑每个报表,以便将数据源更改为新的报表服务器。

重新生成数据仓库和分析服务

  1. 打开 Azure DevOps 的管理控制台。

  2. 在导航栏中,选择 " 报表"。

  3. 在 " 报表" 中,选择 " 开始重新生成"。

  4. 在 " 重新生成仓库和 Analysis Services 数据库 " 对话框中,选择 "确定"

    备注

    在“启动重新生成”操作完成之后,重新生成仓库和重新填充数据也将随之完成。 完成整个过程可能需要几个小时,具体取决于部署的大小和数据量。

问:如何移动使用 SharePoint 产品的集合?

答: 若要移动使用 SharePoint web 应用程序的项目集合,必须同时移动项目集合本身和支持项目集合的 SharePoint 网站集。 必须将网站集移至将支持新部署中的项目集合的 web 应用程序。 具体来说,您必须 备份站点集合数据库 ,然后 移动站点集合数据库。 完成此操作并将已移动的项目集合附加到其目标 Azure DevOps Server 后,需要修复该 Azure DevOps Server 与其 SharePoint web 应用程序之间的连接,以确保连接的集合连接到已移动的网站集。 还需要确保项目集合的 "SharePoint" 选项卡指向该网站集数据库。

备注

如果要在使用 SharePoint 产品的部署之间移动集合,强烈建议 Azure DevOps Server 的服务帐户是这两个部署中 SharePoint 产品的 "服务器场管理员" 组的成员。 否则,当您尝试分离或附加集合时,您可能会遇到错误。
你可以移动项目集合,而无需将此成员资格授予服务帐户进行 Azure DevOps Server。 但是,在附加该集合时将显示错误,你将需要执行额外步骤以将项目重新连接到它们的门户网站。 即使你的操作要求通常限制将此成员资格授予服务帐户,在移动操作期间也应考虑将服务帐户添加到“服务器场管理员”组。

  1. 打开 Azure DevOps 的管理控制台,选择 " SharePoint web 应用程序",并在 web 应用程序列表中,选择支持刚刚附加的集合的 web 应用程序。

    在列表中选择 web 应用程序后,将显示 " 修复连接 " 按钮。

  2. 选择 "修复连接",然后在 "修复与 SharePoint Web 应用程序的连接" 对话框中,选择 "修复"。

  3. Project 集合"中,选择已移动的项目集合,选择" SharePoint 产品 "选项卡,然后修改设置以指向网站集数据库。

问:如何实现移动包含部署池和/或部署组的团队项目集合?

答: 将集合移动到另一个部署时,对于源中具有已分离集合中的部署组的每个部署池,将自动在目标实例中预配一个新的部署池。 如果 Azure DevOps Server 2019 或更高版本,则自动预配的部署池的名称与源实例中的相同。 在以前的版本中,部署池名称的格式为 <project name-deployment-group name> 。 发生冲突时,会将随机 GUID 追加到部署池名称。

移动完成后:

  • 可能有多个部署池正在创建。 可以使用 TfsConfig 命令合并重复的池。 例如: TfsConfig.exe deploymentpool /migrateDeploymentGroups /fromPool:<Source Pool Name> /toPool:<Target Pool Name>
  • 需要用新的部署池重新配置代理。 下面是用于引用的示例 部署代理重新配置脚本

问:如何实现移动包含实验室管理工具版的项目集合?

答: 如果已将集合移动到不同的域或打算使用不同的 System Center Virtual Machine Manager (SCVMM) ,则在开始移动之前,必须从集合数据库中删除虚拟机、模板、项目主机组和项目库共享,并在移动后在 Microsoft 测试管理器中重新创建它们。

备注

TFS 2017 和更高版本的实验室管理工具版已弃用。

在移动集合之前删除实验室管理工具版资源

  • 有关如何从指定的项目集合中删除所有组主机、库共享和环境的信息,请参阅具有 /External 选项的 TFSConfig Lab/delete 命令

在移动集合后配置实验室管理工具版资源

  1. 为 Azure DevOps 配置应用层。

    有关详细信息,请参阅 Configure 实验室管理工具版 FOR SCVMM 环境

  2. 在新 SCVMM 中重新创建黄金母版虚拟机和模板,然后将虚拟机和模板导入到项目集合中。

    有关详细信息,请参阅 创建并存储虚拟机和模板以便实验室管理工具版

  3. 为每个项目重新创建环境。

    有关详细信息,请参阅 使用存储的虚拟机和模板创建 SCVMM 环境

问:如何实现限制在项目中选择函数的访问权限吗?

答: 有权访问集合中一个项目的用户可以查看该集合中的其他项目,即使他们在该项目中无权修改工作项或执行其他操作。 你可以 授予或限制访问权限,以选择 用于创建或修改选择项目的功能和功能,并通过专门创建组并配置这些组的限制来限制它们查看项目。