TFS2010迁移(转移到新服务器)相关问题整理

由于TFS的老服务器过期了需要更换,所以涉及到新服务器的迁移问题。网上搜了各种资料,发现有很赞的步骤指导,同时也缺失了一定的东西,结合自己遇到的问题,进行了一定的整理,希望对大家有一定的帮助。以下是自己参考以及遇到的问题。

 

TFS2010迁移(转移到新服务器)简单步骤

公司给我新换了一台开发服务器,破旧的原始服务器就不打算用了。装好了各种开发环境和数据库后,从昨天开始就研究了一下TFS迁移的问题。经历了一整天的各式各样的错误之后,今天上午终于完成了迁移。

        网上相关的资料太少了,能够给出的步骤也不够详细,基本上一半参照网上的资料,一半自己捅咕。

        现在说一下我的步骤(错误的步骤暂时不计,下边会说到)。

        首先,在新环境下安装SQL Server 2008(全部功能),然后配置报表服务器:服务账户为管理员用户,管理员密码,应用;web服务URL默认,应用;数据库更改,创建新的报表服务器数据库(如果源服务器也配置过报表服务器,那么就把原服务器上的ReportServer,ReportServerTempDB这两个库分离出来,附加到新服务器上,然后选择现有报表服务器数据库),一路默认下一步,最后全部完成的时候,报表服务器配置完毕。

        第二步,配置新服务器的TFS2010(高级配置向导),详细配置方法百度有的是。这里要注意一个问题:如果还想使用原来的项目集合,那么在“项目集合”这一步的时候,可以勾掉“创建新的团队项目集合”这一选项。其他的参照网上的说明。代理配置和生成配置都要配。如果为了方便,所有的账户均可以使用服务器管理员帐号和密码。

        第三歩,打开原服务器上的Team Foundation 管理控制台,选择应用层的“团队项目集合”,然后在常规里边分离集合,忽略所有警告。分离完毕后去SQL Server Management Studio里边分离团队项目集合对应的数据库。这个数据库一般是“Tfs_团队项目集合名称”这样的命名规范,只分离这个库就可以了。

        第四歩,复制这个数据库到新服务器上,附加。然后分别执行以下命令(来自网络):

tfsservicecontrol quiesce    (这个是停止TFS服务)

TFSConfig PrepSQL /SQLInstance:你的SQL Server实例名     (这一步是准备实例)

TFSConfig Accounts /ResetOwner /SQLInstance:你的SQL Server实例名 /DatabaseName:TFS_Configuration    (这一步是配置数据库所有者)

TfsConfig Accounts /add /AccountType:ApplicationTier /account:"账户名称,我用的管理员administrator" /SQLInstance:你的SQL Server实例名 /DatabaseName:TFS_Configuration                (这一步是向数据库中添加账户)

TfsConfig registerDB /SQLInstance:你的SQL Server实例名  /DatabaseName:TFS_Configuration   (这一步是验证并更新数据库,执行完毕后,自动开启TFS服务)

        第五步,打开新服务器上的Team Foundation 管理控制台,选择应用层的“团队项目集合”,然后附加集合,在弹出窗口中点击“列出可用数据库”,就会发现下边列表中已经有了刚刚转移过来的集合数据库,一路默认下一步,验证完毕后执行就可以了,可能会出现几个警告,大致就是报表服务器的敬告,可以暂时忽略。

        第六歩,打开新服务器上的Team Foundation 管理控制台,选择应用层,右侧会有一些信息,点击“应用层摘要”的“重新应用账户”,走条,完毕,结束。“管理控制台用户”右侧的“重新应用”,也可以点一下。之后就是配置“组成员资格”了。在配置组成员资格之前,要保证新服务器上的tfs相关的用户和原服务器一致(如果没有,可以在计算机管理中添加)

        至此,TFS2010的迁移工作基本完成。

 

        以下为天杀的注意事项:

        以上步骤仅适用于新旧服务器的机器名相同,TFS及SQL版本相同的情况。由于都在一个网络中,新服务器起名字基本上不会和原服务器重名,那么以下步骤就是针对新旧服务器不同名的情况。

        注:以下步骤都是在新服务器上进行操作。

       打开库:ReportServer

       更新表:ExecutionLogStorage

       更新字段:InstanceName,把所有数据都改成:新服务器数据库实例名\SQL服务名,可以对比以前的数据,修改实例名就可以。

       更新字段:UserName,把所有数据都改成:新服务器机器名\账户名

       更新表:Keys

       更新字段:MachineName,改为新服务器机器名

       更新表:Users

       更新字段:UserName,怎么更新你懂的。。。

 

       打开你项目集合的那个库:这个数据库一般是“Tfs_团队项目集合名称”这样的命名规范

       打开表:tbl_BuildServiceHost   修改字段:BaseUrl   最前边的那段改成新服务器的机器名。

       打开表:tbl_Command 修改字段:IdentityName 前边那段改成新服务器的机器名

       打开表:tbl_WorkspaceMapping 修改字段:WorkspaceName,Computer   找到对应原服务器的工作区名和计算机名(如果有的话),改为新服务器的机器名

 

       完成以上表数据的修改后,重复第六歩即可。

 

 

至此TFS2010的迁移工作已经全部完成了。我试了一下,可以用,以前的变更集都没有问题。小兴奋了一下。

 

以下是我遇到过的问题:

1.做到第五歩的时候,点击列出可用服务器列表提示没有可选的数据库。这是因为我在原服务器上没有通过Team Foundation 管理控制台正确分离项目集合,而是直接从数据库中分离项目集合数据库。这样做可能出现以上情况。

2.访问TFS web的时候出现503,网上找的原因都是修改了tfs账户的密码导致的。而我的原因是对应的应用程序池停止了,重新运行就好了。

3.网上说可以通过Team Foundation 管理控制台的应用层专用设置来导入从前的团队项目,我试了,不好使,可能是因为机器名不同,按照上边改数据的步骤应该可以。

4.端口冲突的问题,一般sql报表服务器就用默认的80,tfs就用默认的8080,代理服务器8081,一般没什么问题。

 

以上来自:http://www.cnblogs.com/zjoch/archive/2012/12/18/2823045.html

----------------------------------------------------------------------------------------

 

TFS2010物理迁移workspace恢复

在将TFS2010进行物理迁移后最麻烦的就是workspace的恢复。由于workspace直接关联了用户客户端的配置,如果workspace无法加载用户就需要重新创建它,并重新映射本地目录,同时源workspace的owner操作将被全部丢弃。在安装TFS2010时,如果使用windows帐户,在进行物理迁移后是无法直接将group membership同步的。不同物理机器产生的ObjectSID不同,致使在不同的物理机使用相同的计算机名和用户名也无法关联起来。可以通过观察任意Collection的ADObjects、ADObjectMemberships两张表。想要将这些帐户重新关联workspace,需要做以下操作:

1、让用户通过Visual Studio重新连接TFS2010,进入对应的Collection,并打开Source Control Explorer。

2、连接TFS2010数据库实例,找到对应Collection数据库。比如Tfs_DefaultCollection。

3、查询tbl_Workspace数据表,可以看到WorkspaceName和Computer字段分别存放了对应的工作区名称和计算名。旧有的源代码管理数据库已经存放了用户的关联Workspace信息,由于之前已经重新连接了Collection。你会在数据表中发现一条最新的记录,它的Computer、WorkspaceName相同。记录它的OwnerId,删除新记录,并将OwnerId赋值给旧记录。

4、重新通过Visual Studio连接TFS2010,问题解决。

5、如果想要修改Workspace所映射的本地目录,可以通过tbl_WorkingFolder数据表,它的WorkspaceId对应tbl_Workspace数据表的WorkspaceId。

 

以上来自:http://www.cnblogs.com/junchu25/archive/2012/08/10/2631141.html

----------------------------------------------------------------------------------------

 

关于tfs命令的执行:

需要打开命令行窗口

然后

cd D:\Program Files\Microsoft Team Foundation Server 2010\Tools

到相关的TFS  tools目录即可运行相关命令

不同版本安装的路径不一样,可能目录不一样,自己更改即可。

 

另外遇到一个老服务器TFS分离团队项目失败的问题:

分离老服务器TFS的团队项目时一直提示分离失败,查看详情是连接不上数据库。

后面发现问题是自己修改过服务器的IP造成的问题,而TFS里面记录的还是老的IP地址。

这个时候更改一下TFS的相关的IP地址为新的IP地址即可,需要更改所有相关的URL,然后成功分离。

 

以上是迁移TFS遇到的问题,记录一下,同样希望给迁移的人带来一定的帮助。

 

posted @ 2016-03-22 16:31  zagelover  阅读(1119)  评论(0编辑  收藏  举报