首页 > 代码库 > TFS迁移
TFS迁移
之前从网上搜了些TFS备份、还原的资料,经实验效果不是很好,现又从网上搜了些资料,同事找的资料,我现在就借花献佛整理出来给大家一起分享一下。
简单地说下,这篇文章的基本思想是一个集合一个集合的迁移。
首先,在新环境下安装SQL Server 2008(全部功能),然后配置报表服务器:服务账户为管理员用户,管理员密码,应用;web服务URL默认,应用;数据库更改,创建新的报表服务器数据库(如果源服务器也配置过报表服务器,那么就把原服务器上的ReportServer,ReportServerTempDB这两个库分离出来,附加到新服务器上,然后选择现有报表服务器数据库),一路默认下一步,最后全部完成的时候,报表服务器配置完毕。
第二步,配置新服务器的TFS2010(高级配置向导),详细配置方法百度有的是。这里要注意一个问题:如果还想使用原来的项目集合,那么在“项目集合”这一步的时候,可以勾掉“创建新的团队项目集合”这一选项。其他的参照网上的说明。代理配置和生成配置都要配。如果为了方便,所有的账户均可以使用服务器管理员帐号和密码。
第三歩,打开原服务器上的Team Foundation 管理控制台,选择应用层的“团队项目集合”,然后在常规里边分离集合,忽略所有警告。分离完毕后去SQL Server Management Studio里边分离团队项目集合对应的数据库。这个数据库一般是“Tfs_团队项目集合名称”这样的命名规范,只分离这个库就可以了。
第四歩,复制这个数据库到新服务器上,附加。如果新旧服务器的名字不一样,则需要执行第五步。否则,直接进行第六步
第五步,以下步骤都是在新服务器上进行操作。
打开库:ReportServer
更新表:ExecutionLogStorage
更新字段:InstanceName,把所有数据都改成:新服务器数据库实例名\SQL服务名,可以对比以前的数据,修改实例名就可以。
更新字段:UserName,把所有数据都改成:新服务器机器名\账户名
更新表:Keys
更新字段:MachineName,改为新服务器机器名
更新表:Users
更新字段:UserName,怎么更新你懂的。。。
打开你项目集合的那个库:这个数据库一般是“Tfs_团队项目集合名称”这样的命名规范
打开表:tbl_BuildServiceHost 修改字段:BaseUrl 最前边的那段改成新服务器的机器名。
打开表:tbl_Command 修改字段:IdentityName 前边那段改成新服务器的机器名
可以使用以下sql实现:
update Tfs_ITSupportCollection.dbo.tbl_Command
set IdentityName=replace(convert(varchar(8000),IdentityName),‘oldName‘,‘newName‘)
where IdentityName like ‘oldName\%‘;
打开表:tbl_WorkspaceMapping 修改字段:WorkspaceName,Computer 找到对应原服务器的工作区名和计算机名(如果有的话),改为新服务器的机器名
第六步,dos下进入C:\Program Files\Microsoft Team Foundation Server 2010\Tools这个目录,然后分别执行以下命令(来自网络):
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服务)
(保险起见执行一下tfsservicecontrol unquiesce命令,启动TFS服务)
第七步,打开新服务器上的Team Foundation 管理控制台,选择应用层的“团队项目集合”,然后附加集合,在弹出窗口中点击“列出可用数据库”,就会发现下边列表中已经有了刚刚转移过来的集合数据库,一路默认下一步,验证完毕后执行就可以了,可能会出现几个警告,大致就是报表服务器的敬告,可以暂时忽略。
第八歩,打开新服务器上的Team Foundation 管理控制台,选择应用层,右侧会有一些信息,点击“应用层摘要”的“重新应用账户”,走条,完毕,结束。“管理控制台用户”右侧的“重新应用”,也可以点一下。之后就是配置“组成员资格”了。在配置组成员资格之前,要保证新服务器上的tfs相关的用户和原服务器一致(如果没有,可以在计算机管理中添加)。
以下是原作者遇到过的问题:
1.做到第七歩的时候,点击列出可用服务器列表提示没有可选的数据库。这是因为我在原服务器上没有通过Team Foundation 管理控制台正确分离项目集合,而是直接从数据库中分离项目集合数据库。这样做可能出现以上情况。
2.访问TFS web的时候出现503,网上找的原因都是修改了tfs账户的密码导致的。而我的原因是对应的应用程序池停止了,重新运行就好了。
3.网上说可以通过Team Foundation 管理控制台的应用层专用设置来导入从前的团队项目,我试了,不好使,可能是因为机器名不同,按照上边改数据的步骤应该可以。
4.端口冲突的问题,一般sql报表服务器就用默认的80,tfs就用默认的8080,代理服务器8081,一般没什么问题。