以下为TFS服务器数据文件迁移至新硬件的步骤,经过实际操作可正确还原并使用。
1.确保新老服务器的计算机名称一致
2.停止Team Foundation Server使用的服务:
TFSServiceControl quiesce
3.为Team Foundation Server准备SQL Server:
TFSConfig PrepSQL /SQLInstance:tfsdata
4.将Team Foundation Server重定向到远程集合数据库:
TFSConfig RemapDBs /DatabaseName:tfsdata;Tfs_Configuration /SQLInstances:tfsdata
注:如果集合、Analysis Services 和报告的所有数据库都与配置数据库在同一服务器和实例上,则可以跳过此过程。
5.更改已还原数据库的所有权:
TFSConfig Accounts /ResetOwner /SQLInstance:tfsdata /DatabaseName:tfs_configuration
6.更新所有服务帐户:
TfsConfig Accounts /add /AccountType: ApplicationTier /account: tfsdata\tfsservice /SQLInstance: tfsdata /DatabaseName: tfs_configuration
7.在不还原应用层的情况下注册已还原数据库的位置:
TfsConfig registerDB /SQLInstance:tfsdata /DatabaseName:tfs_configuration
8.启用Team Foundation Server使用的服务:
TFSServiceControl unquiesce
9.打开TFS配置管理器,手动配置“应用层、SharePoint Web应用 程序等等”
上述过程略过了SharePoint与Reporting Services重新配置过程,如有需要,请见细节:http://msdn.microsoft.com/zh-cn/library/vstudio/ff459215(v=vs.100).aspx
TFS服务器数据文件迁移至新服务器后,调整用户工作区映射操作如下(针对项目集合数据库):
查找用户计算机名称'xiaobai-PC'所属的工作区
SELECT b.workspacename, b.Computer, b.ownerid, a.workspaceid, a.serveritem, a.localitem, b.creationdate FROM tbl_WorkingFolder AS a INNER JOIN tbl_Workspace AS b ON a.WorkspaceId = b.WorkspaceId WHERE b.Computer = 'xiaobai-PC' -- OR b.workspacename = 'xiaobai'
按上述SQL语句查询结果,更新指定工作区ID的用户ID值
(可能会产生特定用户工作区映射本地磁盘紊乱情况,调整工作区在本地磁盘映射路径)
UPDATE tbl_Workspace SET OwnerId='48' WHERE WorkspaceId='1180000003'
按上述SQL语句查询结果,删除废弃工作映射数据
DELETE tbl_Workspace WHERE WorkspaceId='1180000003'
按上述SQL语句查询结果,更新指定工作区ID的本地磁盘映射路径
UPDATE tbl_WorkingFolder SET LocalItem=REPLACE(LocalItem,'D:\','E:\') WHERE WorkspaceId='1180000003'
如果仅打算还原TFS服务器部分数据文件,需要执行上述第2步之前,在Tfs_Configuration数据库下预先执行如下指令,删除不需要还原的数据文件记录:
DELETE FROM dbo.tbl_ServiceHost WHERE Name IN('Tfs_XXXCollection','Tfs_YYYCollection')