我正在使用 Azure DevOps Server (on-prem) v2020 Update 1.2 (v18.181.32404.7)
我们正准备迁移到 Azure DevOps 服务(云),但我们的数据库非常庞大,我们正在尝试清理它。
TL;DR:表中有近 60 GB 的测试附件tbl_Content
,尽管表中没有相应的记录,但其中许多附件仍然有效Build.tbl_Build
。
查看项目集合的数据库,tbl_Content
它是迄今为止最大的数据库 - 占用了大约 110 GB。我运行了以下查询,该查询将“team test”标识为其中近 60 GB 的所有者:
SELECT SUM(m.CompressedLength) / 1024.0 / 1024.0 AS BlobSizeInMB
FROM tbl_FileReference AS r
JOIN tbl_FileMetadata AS m
ON r.ResourceId = m.ResourceId
AND r.PartitionId = m.PartitionId
WHERE r.PartitionId = 1
AND OwnerId = 4
我编写了一个查询,它将显示特定构建的附件(内容)。下面是一个例子,我运行构建 64447 的查询,它属于 ID=600 的构建定义:
SELECT
r.FileId,
r.ResourceId,
r.CreationDate,
a.FileName,
bc.BuildUri,
bc.BuildId,
bc.BuildNumber,
bc.BuildDefinitionId,
bd.DefinitionName,
r.DeletedOn,
b.BuildId as BuildIdFromBuildTable,
CompressedLength / 1024.0 / 1024.0 AS BlobSizeInMB
FROM tbl_FileReference AS r
LEFT JOIN tbl_FileMetadata AS m
ON r.ResourceId = m.ResourceId
AND r.PartitionId = m.PartitionId
left join tbl_Attachment a on r.FileId = a.TfsFileId
left join tbl_TestRun tr on a.TestRunId = tr.TestRunId
left join [tbl_BuildConfiguration] bc on tr.BuildConfigurationId = bc.BuildConfigurationId
left join Build.tbl_Definition bd on bc.BuildDefinitionId = bd.DefinitionId
left join tbl_Content content on content.ResourceId = r.ResourceId
left join Build.tbl_Build b on b.BuildId = bc.BuildId
WHERE r.PartitionId = 1
AND OwnerId = 4
AND BuildDefinitionId = 600
AND bc.BuildId = 64447
ORDER BY r.CreationDate DESC
因此,我可以看到这些附件记录确实存在,并且占用了空间tbl_Content
,但是因为该BuildIdFromBuildTable
列显示NULL
,我们可以看到表中没有任何 ID 为 64447 的构建的记录(为了安全起见,Build.tbl_Build
我也检查了一下)。dbo.tbl_Build
因此看起来,即使该构建不久前被删除,该构建的附件仍然存在,并且占用了我们 TFS DB 中的许多 GB 的数据。
我已尝试tfsbuild destroy
在正确项目的集合和围绕此构建日期的日期范围上运行命令,但是它说未找到已删除的构建。
我怎样才能摆脱这么多的孤立构建附件数据?
答案1
通过执行以下操作可以解决这个问题:
- 跑步
TfsConfig deleteTestResults
- 运行
Cleanup TestManagement Database
作业, - 跑步
EXEC prc_CleanupDeletedFileContent 1
和EXEC prc_DeleteUnusedFiles 1, 0, 1000
这占用了大约 26 GB 的数据库空间。非常感谢来自微软的 @WeiyingZhang 提出 #1 建议https://developercommunity.visualstudio.com/t/Azure-DevOps-Server:-Test-attachments-T/10490633?viewtype=all