如何缩小TFS 2017快速增长的tbl_content表

时间:2018-10-23 15:50:26

标签: tfs tfs2017

我们使用TFS 2017 CI / CD管道,效果很好。但是,TFS 2017数据库平均每天增长约1GB。截至2018年10月23日,一个数据库从10GB增长到44GB。增长对我们而言逐渐变得难以为继。我们已经将保留政策调整到最低限度。

研究并阅读了至少30篇文章。以下是一些相关文章:

TFS tbl_Content started growing very fast after using VNext build

https://mattyrowan.com/2014/04/02/need-help-tfs-tbl_content-table-and-database-growth-out-of-control/

https://developercommunity.visualstudio.com/content/problem/63712/tfs-database-size.html

这是我到目前为止所做的:

  1. 一次又一次地审查了保留策略,并减少到最少(1天1份)。将“保留已删除”调整为10天。

  2. 在发布定义中取消选中“保留内部版本”框

  3. 运行上述三篇文章中的脚本,并发现:

    a)FileContainer,文件数为149176,43GB(压缩后为34GB)

    b)FileContainerOwner:内部版本29GB

所以增长的主要原因是Build(和工件)。

我的问题是如何缩小数据库大小?

我查看构建定义下的“历史记录”和“已删除”标签。

  1. “历史记录”中的某些记录被“保留释放”锁定。我可以单击记录并删除。但是它什么也没做。记录仍然在那里。

  2. “已删除”中的所有记录仍然存在。

再次回到我的问题,如何删除这些记录以便可以回收空间?

谢谢。

1 个答案:

答案 0 :(得分:1)

将RetainedByRelease重置为false并等待至少24小时后,增长突增停止,并且每天删除tbl_content中的条目。

因此,在总结中,我也这样做了:

  1. 在获取Microsoft.VisualStudio.Services.Client后使用TFS REST API将RetainedByRelease重置为false

特别感谢这两个线程:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/5f649821-b1bf-4008-bba9-0c960e124abb/tfs-releasemanagement-vnext-quotthis-build-has-been-retained-by-a-releasequot-issue?forum=tfsbuild

Trying to get list of TFS users trough client library

可帮助开发人员的完整源代码:

[HttpPost]
[Route("")]
public async Task<HttpResponseMessage> Insert(InsertRequest request)
{
     var body = await Request.Content.ReadAsStringAsync();
}