复杂的 TFS 2017 升级
Complicated TFS 2017 Upgrade
我希望将我当前的 TFS 2015.3 实例升级到 2017。但是,由于一些复杂的因素,它不会像宣传的那么容易。我的场景似乎没有记录。
- 我将安装一个新的域控制器(从 Server Essentials 2012 R2 迁移到 Server Essentials 2016)。
- 当前OS是Server 2012 R2;我也会将其升级到 Server 2016(全新安装到新 VM)。
- 这两个新 VM 必须保留与以前相同的 NETBIOS 名称。
- 当前SQL服务器实例是2014;我也会将其升级到 SQL Server 2016。
- 当前 TFS 实例的 SQL 服务器实例位于单独的 VM 上。我想巩固这一点并将所有内容放在一个虚拟机上。 (我是一名单独的开发人员,我的服务器负载很轻,我想摆脱额外的复杂性和开销。)
是否仅仅是安装 TFS 2017 并从 2015.3 生成的备份中恢复的问题? 2017 会在恢复过程中自动应用任何架构更改等吗?能这么简单吗?
我能找到的与此最接近的问题是 ,但遗憾的是它并不能完全解决我的情况。
我们面临几乎相同的事情,因为我们的服务器是为 TFS 2013 创建的,因此安装了 SQL 2012。
是的,实际上就像您的问题所说的那样简单。当您附加从备份中恢复的集合时,将应用所有架构更改。在此之前,您配置 TFS 的应用层并跳过
但重要的是在进行备份之前分离集合。这会将各种配置复制到收集数据库中,以便它是独立的并且可以移动到另一台服务器。然后您只需将收集数据库移动到新服务器。
列表形式如下:
- 使用 TFS 管理控制台分离集合
- 使用 SSMS 备份收集数据库,例如Tfs_YourCollection
- 使用 SSMS 在新服务器上恢复收集数据库
- 安装 TFS
- 配置应用程序层,跳过创建新的 DefaultCollection
- 在 TFS 管理控制台中附加集合,可能需要一些时间,具体取决于您的集合大小。
你可以在 3 之前做 4+5。
注意:更改域会增加复杂性。 SharePoint 和报告网站未迁移!
除了进行 detach/attach 升级之外,您还有另一种选择。 detach/attach 升级过去曾出现过问题,虽然其中大部分问题已得到修复,但仍被视为次优解决方案。
而是执行升级安装。
对所有 TFS 2015u3 数据库进行完整备份,并将它们还原到新的 SQL 服务器实例。您可以使用 Team Foundation Server 管理控制台创建完整备份,或者在停止每个应用层上的所有 TFS 服务(在您的情况下可能只有一个)后使用 SQL Server Management Studio 使用
TFSServiceControl 停顿
现在安装 TFS 2017 并执行 "upgrade" 安装并将其指向您现有的数据库。它会询问您是否要升级它们以及您是否有有效的备份。
一段时间后(升级可能需要一段时间,因为数据在数据库中移动),您的 TFS 服务器将重新联机。安装向导通常会完成所需的所有映射工作。
有一个重要警告,这与域更改有关。如果你是
安装在同一个 Windows Active Directory 域中,你很好。但是,如果您的服务器 运行 处于工作组模式,您可能希望在 运行 升级步骤之前重新映射 TFS 数据库中的所有身份。所以安装 TFS,但先不要配置。 运行以下命令
TFSConfig Identities /change /fromdomain:Domain1 /todomain:Domain2
然后使用升级选项让 TFS 使用您的数据库备份。 The full explanation on doing a cross domain server migration is documented on MSDN。 在确认升级成功之前,请务必保护好升级前的备份。
我希望将我当前的 TFS 2015.3 实例升级到 2017。但是,由于一些复杂的因素,它不会像宣传的那么容易。我的场景似乎没有记录。
- 我将安装一个新的域控制器(从 Server Essentials 2012 R2 迁移到 Server Essentials 2016)。
- 当前OS是Server 2012 R2;我也会将其升级到 Server 2016(全新安装到新 VM)。
- 这两个新 VM 必须保留与以前相同的 NETBIOS 名称。
- 当前SQL服务器实例是2014;我也会将其升级到 SQL Server 2016。
- 当前 TFS 实例的 SQL 服务器实例位于单独的 VM 上。我想巩固这一点并将所有内容放在一个虚拟机上。 (我是一名单独的开发人员,我的服务器负载很轻,我想摆脱额外的复杂性和开销。)
是否仅仅是安装 TFS 2017 并从 2015.3 生成的备份中恢复的问题? 2017 会在恢复过程中自动应用任何架构更改等吗?能这么简单吗?
我能找到的与此最接近的问题是
我们面临几乎相同的事情,因为我们的服务器是为 TFS 2013 创建的,因此安装了 SQL 2012。
是的,实际上就像您的问题所说的那样简单。当您附加从备份中恢复的集合时,将应用所有架构更改。在此之前,您配置 TFS 的应用层并跳过
但重要的是在进行备份之前分离集合。这会将各种配置复制到收集数据库中,以便它是独立的并且可以移动到另一台服务器。然后您只需将收集数据库移动到新服务器。
列表形式如下:
- 使用 TFS 管理控制台分离集合
- 使用 SSMS 备份收集数据库,例如Tfs_YourCollection
- 使用 SSMS 在新服务器上恢复收集数据库
- 安装 TFS
- 配置应用程序层,跳过创建新的 DefaultCollection
- 在 TFS 管理控制台中附加集合,可能需要一些时间,具体取决于您的集合大小。
你可以在 3 之前做 4+5。
注意:更改域会增加复杂性。 SharePoint 和报告网站未迁移!
除了进行 detach/attach 升级之外,您还有另一种选择。 detach/attach 升级过去曾出现过问题,虽然其中大部分问题已得到修复,但仍被视为次优解决方案。
而是执行升级安装。
对所有 TFS 2015u3 数据库进行完整备份,并将它们还原到新的 SQL 服务器实例。您可以使用 Team Foundation Server 管理控制台创建完整备份,或者在停止每个应用层上的所有 TFS 服务(在您的情况下可能只有一个)后使用 SQL Server Management Studio 使用
TFSServiceControl 停顿
现在安装 TFS 2017 并执行 "upgrade" 安装并将其指向您现有的数据库。它会询问您是否要升级它们以及您是否有有效的备份。
一段时间后(升级可能需要一段时间,因为数据在数据库中移动),您的 TFS 服务器将重新联机。安装向导通常会完成所需的所有映射工作。
有一个重要警告,这与域更改有关。如果你是 安装在同一个 Windows Active Directory 域中,你很好。但是,如果您的服务器 运行 处于工作组模式,您可能希望在 运行 升级步骤之前重新映射 TFS 数据库中的所有身份。所以安装 TFS,但先不要配置。 运行以下命令
TFSConfig Identities /change /fromdomain:Domain1 /todomain:Domain2
然后使用升级选项让 TFS 使用您的数据库备份。 The full explanation on doing a cross domain server migration is documented on MSDN。 在确认升级成功之前,请务必保护好升级前的备份。