为什么TFS允许孤立内容以及如何摆脱它?

时间:2010-03-22 16:47:18

标签: tfs

我的TfsVersionControl数据库已经增长到40多GB。我们最近在文件夹树上做了一个TFS Destroy,它应该已经清除了至少10 GB,但它似乎没有效果。

当我查看TfsVersionControl中的表时,我首先感到惊讶的是,数据库中根本没有外键。运行一些查询,我发现有一些孤儿正在进行:

  • tbl_Content有13.9 GB的记录没有相关的tbl_File记录
  • tbl_File和tbl_Content有2.4 GB,没有相关的tbl_Namespace记录

清理作业似乎每晚运行(prc_DeleteUnusedContent)并且手动对数据库运行它不会删除任何孤儿。我在日志中看到它在3月16日失败的清理工作,这是我销毁大量数据后的早晨。该错误是由完整的事务日志引起的。

这个错误可能是我留下所有这些无法删除的孤立数据的原因吗?如何永久销毁这些不需要的内容?

2 个答案:

答案 0 :(得分:1)

请参阅MSDN上的博客文章 http://social.msdn.microsoft.com/Forums/en-SG/tfsversioncontrol/thread/5f3f8916-1c6d-46f7-9dae-2cdaeaee98db

正如TFS团队的Chandru所说:

  

这是由于TFS 2008中的一个错误 - 如果夜间作业失败,则会导致此问题。请联系microsoft支持,他们可以为您提供修复。请不要试图自己解决这个问题。

答案 1 :(得分:1)

经过很长一段时间与微软的人们来回反复,事实证明这是一个已知的错误,在一些清理过程失败。这里有一篇知识库文章:http://support.microsoft.com/kb/974596

如果您已经安装了TFS 2010,则所描述的修补程序已过时。

此外,Microsoft的技术人员让我在tbl_Content上运行DELETE语句,删除所有未指向实际tbl_File记录的记录。我发布了SQL,但不想对任何复制和粘贴的人负责。它非常自我解释,就像你想象的一样容易。