TFS 2012至TFS 2017非原地升级:操作流程性质存疑
关于TFS 2012到2017非原地升级的正规流程说明
其实你提到的「分离-备份-恢复-附加」流程,就是官方认可的正规非原地升级方式,之所以看起来像迁移,是因为跨服务器的升级本质上就是通过迁移核心数据(项目集合数据库)来完成版本升级的——毕竟TFS的所有核心数据(包括源代码控制的仓库、权限等)都存在项目集合数据库里,跨版本升级的核心就是把旧版本的数据库升级到新版本的 schema 和数据格式。
结合你只用源代码控制、项目数量少的场景,我把这个正规流程拆解成更清晰的步骤,帮你理清:
准备工作
- 确保新服务器的TFS 2017已经安装配置完成,并且配套的SQL Server版本符合要求(TFS 2017需要SQL Server 2012 SP3及以上,推荐用2016版本,避免兼容性问题)
- 检查旧TFS 2012服务器的状态:没有未完成的仓库维护、没有挂起的操作,确保数据库处于健康状态
具体操作步骤
1. 分离旧服务器的项目集合
- 打开旧服务器的「Team Foundation Server Administration Console」
- 左侧导航栏选中「项目集合」,找到你要升级的目标集合
- 点击右侧的「分离集合」,跟着向导走完流程——这一步会把集合从TFS服务中移除,但数据库还留在SQL Server里,这样备份出来的数据更干净,不会有数据不一致的风险
2. 备份集合数据库
- 打开旧服务器的SQL Server Management Studio(SSMS)
- 找到对应的项目集合数据库(默认命名是
TFS_<你的集合名>) - 右键数据库 → 「任务」→「备份」,完成完整备份(如果有需要,也可以备份事务日志)
- 把备份文件复制到新服务器能访问的共享文件夹或者本地路径
3. 在新服务器恢复数据库
- 打开新服务器的SSMS
- 右键「数据库」→「还原数据库」,选择「源设备」并找到你复制过来的备份文件
- 目标数据库名称可以和旧的保持一致(减少后续操作的麻烦),勾选「覆盖现有数据库」(如果新服务器上没有同名数据库的话)
- 等待恢复完成,确认数据库处于「在线」状态
4. 附加并自动升级项目集合
- 打开新服务器的「Team Foundation Server Administration Console」
- 左侧导航栏选中「项目集合」,点击右侧的「附加集合」
- 向导会自动检测到你刚恢复的旧版本数据库,选中它继续
- 接下来TFS会自动执行核心的升级操作:把2012版本的数据库schema和数据格式升级到2017版本,这个过程不需要你手动干预,耐心等待完成即可
- 升级完成后,验证集合是否正常加载,登录TFS web端或者客户端,检查源代码仓库的文件、权限是否都正常
额外说明
因为你只用源代码控制功能,项目又少,这个流程会非常顺畅,不需要处理工作项、构建服务这些复杂功能的兼容性问题。而且这种非原地升级的方式比原地升级更安全——旧服务器的环境完全保留,直到你确认新服务器一切正常后再停用旧服务,不会影响业务。
内容的提问来源于stack exchange,提问作者user441521
相关产品推荐
相关产品推荐

