首页 > 代码库 > 迁移TFS 2012服务至新的电脑硬件

迁移TFS 2012服务至新的电脑硬件

迁移TFS 2012的时候碰到一些问题, 中文记录很少, 英文的记录也比较零散. 这里记录最直接和简单的方法.

环境:

1. 公司域环境, 所有TFS用户都是公司域帐户.

2. TFS从一台服务器转移至另一台服务器. 都加入了公司域. 机器名分别为PC1和PC2.  域内不能有同名的电脑。

准备两台服务器的TFS环境最好一模一样, 否则会碰到各种奇怪问题.  

我们的环境是 TFS 2012 Update4-ENG + SQL Server 2008R2 SP2-ENG + Windows 2008R2(操作系统可以不一样).

安装路径随意: 我们的TFS装在 E:\Program Files\Microsoft Team Foundation Server 11.0,  SQL也装在E盘。

 

迁移步骤:

1. 老服务器PC1管理员权限运行命令行,进入目录 "E:\Program Files\Microsoft Team Foundation Server 11.0\Tools"。 TFS2010也有此Tools目录,前面路径不太一样。

2. 停止TFS服务, 免得有人在迁移的时候Check in\Check out.   运行命令: TFSServiceControl quiesce

3. Tools目录内运行: TfsBackup.exe,  选择需要备份的数据库,全部备份。 默认会自动选择TFS数据库备份。

4. 拷贝备份出来的*.bak文件至新服务器PC2。

5. 同样管理员进入新服务器的Tools目录,运行: TfsRestore.exe. 恢复并覆盖所有的数据库。 如果无法恢复,可能是已经配置了数据库或正在使用中。可以停掉TFS服务,IIS网站服务后再次尝试恢复。

6. 恢复完后打开TFS管理台查看是否迁移成功, 成功的话可以在Application Tiers内 Change Urls, 将Notification Urls改成 http://PC2:8080/tfs

7. 迁移后还有一个麻烦, PC2的TFS管理台内点击Group MemberShip 报错TF30046说Instance 信息不对,客户端也连接不上。 这里修复见下面步骤。

8. 需要进行TFS重新配置。 首先进入注册表, 找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TeamFoundationServer\11.0\InstalledComponents\ApplicationTier, 将IsConfigured从1修改为0。

9. 在Tools目录,管理员运行命令行,输入命令TfsMgmt.exe configure, 可进入TFS重新配置。 如果上面注册表没改,所有配置都是灰色,无法修改。 如果改了, 则选择Application-Tier Only, 开始重新配置, 配置时可能会碰到两个错误。 一是网站已占端口, 这时需进入IIS管理,停掉Team Foundation Server网站,改名或删掉。 二是在管理员命令行输入命令 sc delete TFSJobAgent 删除TFSJobAgent服务。  做完这两步后应可重新配置成功。

10. 网上有些地方说删除Cache之类的没用。 另外在TFS管理台内找Application Tier重新配置的选项在TFS2012内可能找不到的。改Web.config也不管用, 还有修复安装TFS也不管用。 只有上面的步骤8 ,9目前比较简单管用。 可以修复TF30046错误。

11. 配置完,自动进入TFS管理台,点击Group MemberShip看能否打开管理权限,能打开则迁移成功。

12. 恢复运行TFS服务需输入 TFSServiceControl unquiesce

 

客户端只要改变服务器连接至PC2,即可连接新TFS服务器, Workspace什么的都不会变。

也可以将老服务器离线后,改变新服务器机器名为PC1, 启动之后如碰到问题,则再次配置。 客户端不需要任何改变即可使用。

 

参考:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/93dbae15-e96f-48e0-9072-5c938a5e27c2/error-after-restoring-tfs-database-to-new-hardware?forum=tfsgeneral

http://distefano.biz/blog/index.php/2012/12/05/reopen-team-foundation-configuration-wizard/