我们有TFS 2017.3,带有单独的代码搜索服务器。
我们拥有庞大的TFS数据库(约1.6TB),在代码搜索服务器中我们有700GB空间。
几周后,磁盘空间不足,代码搜索在tfs中无效。
我们增加磁盘空间后,搜索重新开始工作。 我们如何制定保留策略以删除旧的代码搜索数据(索引)?我们不想增加更多的磁盘空间。
答案 0 :(得分:0)
搜索索引(代码和工作项)分为两个阶段:
- 批量索引(BI),其中对Collection下所有项目/存储库中的整个代码和工作项工件进行索引。这是一个 耗时的操作并取决于工件的大小
在集合下。- 连续索引(CI),处理工件的所有增量更新(添加/更新/删除)并为其编制索引。这是 基于通知的模型,索引器侦听TFS事件 并根据这些事件通知进行操作。 CI几乎处理 所有更新操作,包括CRUD操作 Project / Repository / Collection层(例如Repository重命名, 项目添加/删除等)。这些CI的运行时间会 再次依赖于增量更新的大小。 BI永远 在CI之前,即CI永远不会在项目/存储库上执行 直到BI完成相同的工作。
如何清理索引数据和重新索引请遵循以下步骤:
DELETE FROM [Search].[tbl_IndexingUnit]
DELETE FROM [Search].[tbl_IndexingUnitChangeEvent]
DELETE FROM [Search].[tbl_IndexingUnitChangeEventArchive]
DELETE FROM [Search].[tbl_JobYield]
DELETE FROM [Search].[tbl_TreeStore]
DELETE FROM [Search].[tbl_DisabledFiles]
DELETE FROM [Search].[tbl_ResourceLockTable]
更多详情请参阅MSDN中的此博客: Resetting Search Index in Team Foundation Server
答案 1 :(得分:0)
在删除ES文件夹,重新安装代码搜索扩展名之后,我能够减小磁盘大小,并且有时不得不运行MissingIndexFolderTriggerCollectionIndexing.ps1
。
但是-我得出的结论是这不值得做,磁盘大小正在迅速增长并达到原始大小,因此我什么也没保存。
尽管Microsoft建议提供35%的数据库磁盘空间,但这对我们来说还是不够的,并且当磁盘已满时,我们会增加磁盘空间的大小(目前约为DB大小的45%)。
结论-不要触摸ES,如果磁盘已满,则增加磁盘大小。