3

我希望将我当前的 TFS 2015.3 实例升级到 2017。然而,由于一些复杂的因素,它不会像宣传的那么容易。我的场景似乎没有记录。

  1. 我将安装一个新的域控制器(从 Server Essentials 2012 R2 迁移到 Server Essentials 2016)。
  2. 当前操作系统是Server 2012 R2;我也会将此升级到 Server 2016(全新安装到新 VM)。
  3. 这两个新 VM 都必须保留与以前相同的 NETBIOS 名称。
  4. 当前的 SQL Server 实例是 2014;我也将把它升级到 SQL Server 2016。
  5. 当前 TFS 实例的 SQL Server 实例位于单独的 VM 上。我想整合它并将所有内容放在一个 VM 上。(我是一个单独的开发人员,我的服务器负载非常轻,我想摆脱额外的复杂性和开销。)

这仅仅是安装 TFS 2017 并从 2015.3 生成的备份恢复的问题吗?2017 会在恢复过程中自动应用任何架构更改等吗?会不会这么简单?

我能找到的最接近的问题是here,但不幸的是它并不能完全解决我的情况。

4

2 回答 2

7

除了进行分离/附加升级之外,您还可以使用另一个选项。分离/附加升级过去曾出现过问题,虽然这些问题中的大多数已得到修复,但它被认为是一个次优的解决方案。

而是执行升级安装。

对所有 TFS 2015u3 数据库进行完整备份,并将它们还原到新的 SQL 服务器实例。您可以使用 Team Foundation Server 管理控制台创建完整备份,或者在停止每个应用程序层(在您的情况下可能只有一个)上的所有 TFS 服务后使用 SQL Server Management Studio 使用

TFSServiceControl 停顿

现在安装 TFS 2017 并执行“升级”安装并将其指向您现有的数据库。它会询问您是否要升级它们以及是否有有效的备份。

一段时间后(升级可能需要一段时间,因为数据在数据库中移动),您的 TFS 服务器将重新联机。安装向导通常会完成所有需要的映射工作。

有一个很大的警告,这与域更改有关。如果您在同一个 Windows Active Directory 域中进行安装,那就很好。但是,如果您的服务器在工作组模式下运行,您可能希望在运行升级步骤之前重新映射 TFS 数据库中的所有身份。所以安装 TFS,但不要配置。运行以下命令

TFSConfig Identities /change /fromdomain:Domain1 /todomain:Domain2

然后使用升级选项让 TFS 使用您的数据库备份。MSDN 上记录了有关进行跨域服务器迁移的完整说明在验证成功升级之前,请务必保护您的升级前备份。

于 2016-12-30T12:04:36.180 回答
1

我们面临几乎相同的事情,因为我们的服务器是为 TFS 2013 创建的,因此安装了 SQL 2012。

是的,它实际上就像你的问题所说的那样简单。当您附加从备份中恢复的集合时,将应用所有架构更改。在此之前,您配置 TFS 的应用层并跳过

重要的是在进行备份之前分离集合。这会将各种配置复制到集合数据库中,以便它是独立的并且可以移动到另一台服务器。然后,您只需将收集数据库移动到新服务器。

以下是列表形式的方法:

  1. 使用 TFS 管理控制台分离集合
  2. 使用 SSMS 备份收集数据库,例如 Tfs_YourCollection
  3. 使用 SSMS 在新服务器上恢复收集数据库
  4. 安装 TFS
  5. 配置应用层,跳过创建新的 DefaultCollection
  6. 在 TFS 管理控制台中附加集合,可能需要一些时间,具体取决于您的集合大小。

你可以在 3 之前做 4+5。

注意:更改域会增加复杂性。SharePoint 和报告网站未迁移!

于 2016-12-30T08:06:33.360 回答