恢复TFS 2013数据库后访问项目报错TF400876,如何解决?
解决TFS 2013恢复数据库后TF400876错误的方案
这个问题我之前处理过好几次,本质是你附加旧数据库后,TFS应用层和数据库里的元数据没同步到位,尤其是主机(Host)和分区(Partition)的关联信息没对齐,导致系统找不到对应分区。下面是一步步的实操方案:
1. 先停掉所有TFS服务
打开系统的服务(直接搜services.msc就行),找到所有带"Team Foundation"前缀的服务,全部停止,避免操作过程中服务干扰。
2. 用TFS配置工具重新绑定数据库
这是最常用的修复方式,大部分情况都能解决:
- 打开Team Foundation Server 2013配置工具,选「应用层 - 更改配置」,跟着向导走:
- 选择「使用现有的配置数据库」,输入你的SQL Server实例名,然后选中你刚附加的
Tfs_Configuration数据库。 - 向导会自动检测并同步应用层和数据库的配置,这一步会自动修复主机和分区的映射关系。
- 选择「使用现有的配置数据库」,输入你的SQL Server实例名,然后选中你刚附加的
3. 手动修复(配置工具没搞定的话)
如果上面的步骤没解决,就得直接操作数据库和命令行:
- 打开SQL Server Management Studio,连接到你的TFS数据库实例,打开
Tfs_Configuration库。 - 先查一下这个主机ID对应的记录:
SELECT * FROM tbl_Partition WHERE HostId = '24e7791a-9e93-4021-b6b8-92abe5206045' SELECT * FROM tbl_ServiceHost WHERE HostId = '24e7791a-9e93-4021-b6b8-92abe5206045' - 如果查不到分区记录,说明分区元数据丢了,用TFS命令行工具重新注册:
- 以管理员身份打开命令提示符,导航到TFS安装目录的Tools文件夹,一般是
C:\Program Files\Microsoft Team Foundation Server 12.0\Tools。 - 先注册配置数据库:
TfsConfig registerdb /sqlInstance:你的SQL实例名 /databaseName:Tfs_Configuration - 再同步项目集合:
TfsConfig collections /sync /collectionName:你的项目集合名称 - 如果你的项目集合是单独附加的,还可以用
TfsConfig collections /attach命令重新绑定集合数据库。
- 以管理员身份打开命令提示符,导航到TFS安装目录的Tools文件夹,一般是
4. 重启服务验证
回到服务管理,把之前停的TFS服务全部启动,然后再打开浏览器访问TFS项目,应该就能正常访问了。
小提醒
- 操作的时候确保你的账号有足够权限:得是SQL Server的sysadmin角色,同时也是TFS的管理员账号,不然容易报错。
- 如果有多个项目集合,每个集合都要确认配置数据库里的信息和实际数据库一致。
内容的提问来源于stack exchange,提问作者Beginner
相关产品推荐
相关产品推荐

