TFS 2010 升级到 TFS 2013 - Window Server 2019 Standard 是否支持升级?

TFS 2010 Upgrade to TFS 2013 - Can Window Server 2019 Standard Support the Upgrade?

我们希望在我们的生产环境中执行以下 TFS 升级:

  1. 将 TFS 2010 升级到 TFS 2013.5
  2. 将 TFS 2013.5 升级到 TFS 2019

为了支持这两种迁移,我们有一个 Windows Server 2019 标准版来托管应用层。数据层将安装在专用的 SQL 盒子上。

然而,Microsoft 网站将 Windows Server 2012(Essentials、Standard、Datacenter)列为 TFS 2013 所需的最新服务器操作系统版本。

因此,我的问题是,我们是否仍可以在较新版本的 Windows Server 上(在我们的例子中是 Windows Server 2019 标准版)上执行到 TFS 2013 的计划升级?

"Supported" 表示 "tested and known to work"。 OS 之后的版本尚未经过测试,可能无法正常工作,或者 TFS 可能根本无法安装。

我一天完成了数十次 TFS 升级。我的建议是 完全按照 Microsoft 提供的文档 进行操作。如果 OS 未被列为受支持的 OS,则不要使用该 OS。

我同意大牛的观点,请严格按照文档进行操作。

由于您可以从 TFS 2010 --> TFS 2012.3 --> TFS 2019 升级,或者从 TFS 2010 --> TFS 2013.5 --> TFS 2019 升级,您可以考虑尝试从 TFS 2010 升级到 TFS 2012.3或者TFS 2013.5在同一个Windows Server 2008 R2 Enterprise服务器上,然后在升级到DevOps Server 2019.1.1(TFS 2019.1.1)时迁移到Windows Server 2019标准版。

因此,在 Whosebug 上的各种来源的反复讨论和无数次辩论和建议之后,我最终成功完成了从 TFS 2010 到 Azure DevOps Server (TFS) 的迁移升级2019.1

但是我想强调 5 个非常重要的点:

  1. 这是一次完整的迁移升级(不是就地升级),因此每次迁移到更高版本的 TFS 都是使用 new/replacement 硬件完成的。
  2. 两个升级都已完成,基于 Mohamed Radwan 的优秀 YouTube 教程,可以找到 here 并且在很大程度上依赖于 TFSBackup 和 TFSRestore 实用程序,它们都随所有版本的 TFS 一起提供,我相信自2012年版以来。
  3. 我只迁移了 TfsConfiguration 数据库和我们的项目数据库。
  4. 没有迁移 SharePoint。
  5. 未迁移 Reporting Services。
  6. 我们没有在 TFS 2010 管理控制台中设置计划备份。

TFS 2010 到 TFS 2013 - 一些有用的注意事项

  • 我的 TFS 2010 数据库的备份是从 TFS 2013 实例(一旦安装)的工具目录执行的,在我的应用程序层的新专用硬件上。
  • 在使用 TFSRestore 实用程序成功还原数据库后,通常需要执行三个关键任务,这些任务使用 TFSConfig 工具来确保两个 TFS 实例之间的数据完整性不会受到损害或损坏。这些是按相同顺序执行的 PrepareCloneChangeServerIDRemapDB 任务。

PrepareClone 任务在执行时失败,在尝试解决问题几天后,我最终放弃了,主要是因为 PrepareClone 命令删除了有关计划的信息来自 Azure DevOps Server 部署的备份、SharePoint 和报告资源,用于两种情况:

  • 当您将部署移动到新硬件但想继续使用旧部署时。

  • 当您克隆 Azure DevOps Server 部署时。

我们的迁移范围内没有任何计划的备份、SharePoint 或 Reporting Services,当然也不打算长期使用旧部署,除了几天的验证和测试迁移升级。因此,我忽略了错误。

我还指望这样一个事实,如果 ChangeServerID 命令 运行 成功,这将确保这两个实例现在无论如何都是离散的,已经被分配了唯一GUID。幸运的是,ChangeServerID任务成功了。

然后我还执行了 RemapDB 命令,但实际上这甚至不需要,因为 ChangeServerID 命令已经完成了重新映射任务。

从这一刻起,迁移就像做梦一样,完全没有遇到任何问题。另一个要补充的关键点是,我们的 TFS 2010 实例的备份是在我确保没有用户登录系统并在备份之后,我将 2010 实例完全脱机后才完成的。

TFS 2013 到 Azure DevOps Server (TFS) 2019.1 - 一些有用的注意事项

  • 再次使用 TFSBackup 和 TFSRestore 实用程序(这次来自 Azure DevOps Server 2019.1 Tools 目录)并且几乎重复了之前迁移升级的步骤,我设法让我们顺利进入目标 2019 实例。
  • 更好的是,在 Azure DevOps 2019 中,TFSConfig PrepareClone、ChangeServerID 和 RemapDB 任务已合并到应用层配置向导中,这意味着您不需要从命令行手动 运行 它们。该工具会为您全面处理,非常好!
  • 新的预生产升级选项使我能够模拟并以某种方式执行最终升级的干运行,这是 Azure DevOps Server 2019.1 的服务器配置向导中包含的另一个出色功能

我的结束语

  • 从它的易用性和简单性、自动化的大量使用以及显然不太可能导致任何灾难来判断,我很惊讶 TFSBackup 和 TFSRestore 工具不是推荐作为当前最好的迁移选项,当然取决于目标迁移类型。

  • 我过去进行过 TFS 升级,这些升级基于停止项目集合、分离数据库并将其重新附加到目标实例等较旧的过程,等等,等等必须承认,如果我能提供帮助,我将来几乎没有机会回到那个位置,因为在我看来,TFSBackup 和 TFSRestore 工具是一个更好、更安全和可靠的选择。

希望此反馈能帮助下一个可能踏上将 TFS 从 2010 版升级到更高版本的类似旅程的人。