拆分项目集合

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。 这种情况要求你先拆分集合,然后将拆分后的其中一个集合移到远程办公室部署。

    备注

    本文中的过程仅支持拆分项目集合。 若要在拆分集合后移动集合,请参阅 移动项目集合

若要拆分项目集合,请执行以下步骤:

  1. 准备拆分集合

    1. 分离集合

    2. 备份集合数据库

  2. 拆分集合

    1. 使用不同的名称还原集合数据库

    2. 附加原始集合数据库

    3. 附加重命名的集合数据库

    4. 从拆分集合中删除项目

    5. 启动集合

  3. 配置拆分集合

    1. 为拆分集合配置用户Project组

    2. 为集合中的项目配置用户和组

在开始之前

确保你是服务器管理员,在 SQL Server 和 Azure DevOps Server。 如果你不是管理员,请 添加为一个

1-a. 分离集合

首先,从运行集合的Azure DevOps Server集合的部署中分离集合。 分离集合会停止所有作业和服务以及集合数据库本身。 此外,分离进程从配置数据库复制特定于集合的数据,并保存为项目集合数据库的一部分。

分离项目集合

  1. 在托管要拆分的集合Azure DevOps打开管理控制台,

  2. 选择 Project集合",在集合列表中选择要拆分的集合。

    此示例中,管理员选择 "TestProjects"。

    从集合列表中选择集合

    提示

    项目集合的默认名称为 DefaultCollection。 如果要拆分此数据库,请确保为第二个集合提供其他名称,因为这是连接时的默认选择。

  3. 在"常规 "选项卡上,选择"停止收集"。

    停止收集接口

    "Project状态原因"对话框随即打开。 将向用户显示你输入的文本。 选择 " 停止",并等待集合停止。 停止时,其状态将显示为"脱机 "。

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

    "分离Project向导" 随即打开。

    分离集合向导

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

  6. 在" 查看将用于分离项目集合的设置"页上 ,查看详细信息。 若要更改任何设置,请选择"上一 个"。 如果正确,请选择"验证 "。

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

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

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

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

1-b. 备份集合数据库

分离集合后,必须先备份该集合数据库才能使用其他名称将副本还原到服务器。 该副本将变为要拆分到另一个集合的原始集合部分的数据库。 若要执行此任务,请使用随 SQL Server 一起提供的工具。

备份数据库

备份集合数据库

  • 若要了解如何手动备份和还原各个数据库,请参阅备份和还原 SQL Server创建备份计划和计划。 请务必选择与部署SQL Server的版本。

    重要

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

2-a. 还原集合数据库

拆分集合时,必须将集合数据库的备份还原到 SQL Server的实例,该实例配置为支持 Azure DevOps Server。 还原数据库时,必须为它提供与原始集合数据库的名称不同的名称。

提示

以下步骤概述了如何使用 SQL Server 2012 年 1 月还原SQL Server Management Studio。 若要详细了解如何手动备份和还原各个数据库,请参阅备份和还原SQL Server。 请务必选择与部署SQL Server的版本。

使用新名称还原集合数据库

  1. 打开SQL Server Management Studio,并连接到承载要拆分的项目集合的数据库的实例。

  2. 在对象资源管理器,展开"数据库",打开要拆分的数据库的子菜单,然后选择"任务",选择"还原",然后选择"数据库 "。

    "还原数据库"窗口在"常规" 页上 打开。

    "常规"窗格中的"还原数据库"选项

  3. " 源"中,确保选择项目集合数据库。 在 " 目标"中,提供数据库副本的名称。 保留 Tfs _ 前缀,并添加一个不同的名称。 通常,该名称是拆分项目集合的名称。 在 "还原 计划"中,确保要还原的备份集是要还原到的备份集。 若要确保这些集有效,请选择"验证备份介质",然后在"选择 页"中选择"选项 "。

  4. "还原选项"中,将所有复选框留空。 确保" 恢复状态" 设置为 RESTORE WITH RECOVERY。 在 "结尾日志备份" 中,清除"将源数据库 保留 为还原状态"复选框,然后选择"确定 "。

    提示

    如果还原操作失败,并出现一条错误消息,指示数据库正在使用且无法覆盖,可能需要手动配置所有逻辑文件名以反映数据库的新名称。 在 "选择页"中,选择"文件",选择要还原的每个文件旁边的省略号按钮,并确保文件的名称反映数据库的新名称,而不是旧名称。 然后再次尝试还原操作。

2-b. 附加原始集合数据库

使用其他名称还原数据库后,将原始集合数据库重新附加到 Azure DevOps Server。

备注

如果部署使用 SharePoint 产品,而 Azure DevOps Server 服务帐户不是场管理员组的成员,则附加集合时会出现警告。 这是预期的行为,你可以继续。

TFS 2018 及更高版本已弃用与 Sharepoint Products 的集成。

附加集合

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

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

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

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

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

    “数据库”列表

  5. 在 " 输入项目集合信息 " 页上,在 " 名称 " 中提供集合名称(如果尚不存在)。 由于这是原始集合,因此你可以选择保留与之前相同的名称。 在 " 说明" 中,可以选择提供集合的说明。

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

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

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

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

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

  11. 项目集合将显示在管理控制台中的集合列表中。 如果集合状态列为" 联机", 则必须先停止该状态,然后才能继续。 从列表中选择集合,然后在 " 常规 " 选项卡上选择 " 停止收集"。

    停止收集映像

2-c. 附加重命名的集合数据库

附加原始集合数据库后,必须将重命名的集合附加到 Azure DevOps Server 的部署。 附加此集合后,它将保持停止状态。 直到所有重复的项目都移除之后才能启动该集合。

备注

如果你的部署使用 SharePoint 产品,并且 Azure DevOps Server 的服务帐户不是 "服务器场管理员" 组的成员,则在附加集合时将会出现警告。 这是预期的行为,你可以继续。

附加重命名的集合数据库

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

  2. 选择 Project 集合,然后选择 "附加集合" 以打开向导。

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

  4. 在 " 数据库 " 列表中,选择重命名的集合数据库。

  5. 在 " 输入项目集合信息 " 页上,在 " 名称 " 中输入与集合原始名称不同的名称。 此名称应与为重命名的数据库提供的名称匹配,而不包含 Tfs _ 前缀。

    附加团队项目名称条目

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

  7. 在 " 查看将用于附加项目集合的设置 " 页上,查看信息。 若要更改任何设置,请选择 " 上一步"。 如果所有设置都正确,请选择 " 验证"。

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

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

    备注

    如果 SharePoint web 应用程序支持该集合,则会出现一个警告图标,其中显示 SharePoint web 应用程序的附加状态。 同样,如果原始集合包含报表,将针对报表的附加状态显示一个警告图标。 这是预期的行为,你可以继续。

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

  11. 集合的名称将显示在管理控制台中的集合列表中,并且其状态应显示为 " 脱机"。

    附加团队项目名称条目

  12. 若要确保两个集合都附加了唯一的 ID,请在管理控制台中转到事件日志并打开两个集合附加操作的日志文件。 极少数 collectionproperties 的 Guid 匹配。

    包含极少数 collectionproperties 的 Guid 的日志

    在极少数 collectionproperties Guid 确实匹配的极少数情况下,将 ID 更改为唯一 ID,然后再使用/clone 参数在第二个集合上运行 TFSConfig collection 命令

2-d. 从拆分集合中删除项目

既然已将集合的两个副本附加到 Azure DevOps Server,则必须从原始集合或重命名的集合中删除每个项目,以便不会有任何项目保留在这两个集合中。

重要

一个项目不能存在于多个集合中。 直到删除拆分集合之间所有重复的项目之后,才能启动重命名的集合。

从集合中删除项目

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

  2. 选择 Project 集合,然后在集合列表中,选择要拆分的原始项目集合,以将其拆分。

  3. 在 " 项目 " 选项卡上的项目列表中,选择要从集合中删除的项目,然后选择 " 删除"。

    提示

    你可以一次选择多个要删除的项目。

    用于删除项目的 TFS 管理控制台

  4. 选中 " 删除工作区数据 " 复选框,保留 " 删除外部项目 " 复选框,然后选择 " 删除"。

    如果未清除 "删除外部项目" 复选框,并且您的项目配置为使用实验室管理工具版,则将从 System Center Virtual Machine Manager 中删除与该项目关联的虚拟机和模板。 它们将不再可用于重命名集合中的项目。 (请注意,TFS 2017 和更高版本已弃用了实验室管理工具版。 )

  5. 当你完成删除你不希望在原始项目集合中承载的项目时,请从集合列表中选择重命名的项目集合。 然后,在 " 项目 " 选项卡上,从新集合中删除不需要的项目。

    项目中的项目选项卡

  6. 重复本部分中的步骤,直到两个集合包含一组唯一的项目。

2-e. 启动项目集合

删除项目后,请重新启动这两个集合。

启动项目集合

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

  2. 选择 Project 集合,然后在集合列表中,选择要拆分的集合。

  3. 在 " 常规 " 选项卡上,选择 " 开始收集"。

  4. 为使用新名称附加的集合重复步骤 2。

    TFS 管理控制台

3-a. 为拆分集合配置用户和组

如果两个拆分集合都将保留在同一域中并且你希望允许原始集合的管理员访问这两个集合,则可跳过此过程。

拆分集合后,必须使用将管理这两个集合的用户和组更新这两个集合的权限组。 有关详细信息,请参阅 为项目集合设置管理员权限

3-b. 为项目配置用户和组

如果两个拆分集合都将保留在同一域中并且希望允许原始集合中项目的用户访问这两个集合,则可跳过此过程。

为这两个集合配置管理员后,你或者这些管理员必须为用户和组配置对每个集合中的项目的访问权限。 根据你的部署,你可能还需要在 SharePoint 产品和 Reporting Services 中配置这些用户的权限。 有关详细信息,请参阅 将用户添加到项目或团队

问题解答

问:我的部署使用报表。 拆分集合时,我是否需要执行任何其他步骤?

答: 是的,您需要在删除项目后拆分报表,使这两个集合都具有一组唯一的项目。 你还将需要重新生成数据仓库。

删除项目后,将拆分集合使用的报表移到其他文件夹中,然后将其从原始文件夹中删除。

重要

报表文件夹会同时存在于两个位置上。 确保在删除任何报表文件夹之前相应地移动所有报表。

将报表拆分为单独的文件夹

  1. 在报表管理器中,将支持拆分集合的报表移到用于该集合的适当文件夹中。 有关详细信息,请参阅 " 移动项" 页

  2. 如果你的部署使用 SharePoint web 应用程序,则在移动报表后,你可能需要重新修复连接才能正确显示。 如果报表未正确显示,请按照上一过程中的步骤修复连接。

拆分报表并启动这两个集合后,请重新生成 Azure DevOps 的仓库和用于Analysis Services。 拆分集合后,必须为部署执行此步骤以确保报表和面板正常工作,并确保与部署中的其他集合不发生冲突。

重新生成数据仓库和Analysis Services数据库

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

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

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

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

    备注

    在“开始重新生成”操作完成之后,将继续重新生成仓库并继续重新填充数据。 根据部署大小和数据量,整个过程可能需要几个小时才能完成。

问:我能否拆分使用 SharePoint 产品来支持集合中的一个或多个项目的集合?

答: 可以,但需要执行拆分集合的其他步骤。

附加重命名的集合并删除所有重复项目后,修复与 SharePoint Web 应用程序的连接。 修复连接可确保在 Web 应用程序与原始集合和重命名集合之间正确设置所有连接。

如果部署使用 SharePoint 产品,则强烈建议你的服务帐户Azure DevOps Server 场管理员组 的成员。

备注

可以在不向服务帐户授予此成员身份的情况下拆分项目集合,Azure DevOps Server。 但是,在附加该集合时会看到错误,需要执行额外步骤将项目重新连接到它们的门户网站。 即使你的操作要求通常限制将此成员资格授予服务帐户,你也应考虑在拆分操作期间将该服务帐户添加到服务器场管理员组。

修复与 web SharePoint的连接

  1. 打开管理控制台Azure DevOps托管要移动集合的部署的应用程序层的服务器上。

  2. 选择 SharePoint Web 应用程序",在 Web 应用程序列表中,选择支持刚刚附加的集合的 Web 应用程序。

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

  3. 选择 "修复 连接",在"修复与 web SharePoint的连接" 对话框中,选择"修复 "。

  4. 当"状态"窗口报告 "重新连接操作成功"时, 选择"关闭 "。 这可能需要几分钟的时间。 此外,在此过程过程中,你可能会看到一些错误,因为两个集合仍使用同一SharePoint项目门户的默认站点位置。 这是预期的行为,你可以继续。

修复连接并启动两个集合后,必须针对每个集合中的项目重新配置项目门户,以便这些门户反映这些项目的正确数据。

重新配置项目门户

  • 打开团队资源管理器,连接到每个项目集合,并为每个项目配置该站点SharePoint URL。 对于每个项目,设置,选择"门户设置",并确保选中"报表和仪表板引用此项目的数据"复选框。

可以继续使用 SharePoint Products 中的同一网站集来支持这两个拆分集合。 这两个集合中的项目将使用与以前相同的项目门户。 所有门户都托管在支持原始项目集合的站点集合上。 但是,此配置不仅会使项目集合与网站集之间的一对一关系变得复杂,还可能会使还原部署更加困难。 若要避免这种复杂性,可以拆分支持原始项目集合的站点集合,以反映为项目集合进行拆分。

拆分网站集并重定向拆分项目集合以使用拆分网站集

  1. 有关如何拆分网站集的信息,请参阅在数据库之间移动网站集或最新版本产品SharePoint指南。

    提示

    请确保配置用户权限和网站集访问权限,以匹配用户对项目集合的访问权限,如本文前面所述。

  2. 通过打开管理控制台,从项目集合列表中选择集合,在"SharePoint 站点"选项卡上选择"编辑默认站点位置",将任何受影响的项目集合配置为使用拆分 网站集

  3. 针对每个集合中的项目重新配置项目门户,以便这些门户反映这些项目的正确数据。

    有关详细信息,请参阅 上述重新配置项目 门户。

问:如何拆分针对实验室管理配置的集合?

答: 需要执行几个附加步骤来拆分集合。 在开始拆分前,你将需要从集合中删除实验室管理资源,然后在拆分后,你将需要为每个拆分集合单独配置实验室管理资源。

备注

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

在开始拆分之前,请从集合实验室管理工具版中删除这些资源。 这些资源包括虚拟机、模板、项目主机组和项目库共享。 在还原并附加集合之后将需要重新创建 Lab Management 资产。

删除实验室管理工具版资源

  • 若要了解如何从指定的项目集合中删除所有组主机、库共享和环境,请参阅使用 /External 选项的 TFSConfig Lab /Delete命令。

完成拆分后,重新创建项目主机组。 还必须在 Azure DevOps Server 中重新创建项目库共享,以及 Microsoft 测试管理器。

配置实验室管理工具版资源

  1. 为应用程序配置应用程序Azure DevOps。

    有关详细信息,请参阅为 SCVMM 实验室管理工具版配置应用程序

  2. 在新的 SCVMM 中重新创建黄金主虚拟机和模板,将虚拟机和模板导入项目集合。

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

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

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