如何禁用存档索引并从表中删除其内容?
indexed_archives_entries数据库表是归档文件中包含的文件的索引,归档文件的内容可以通过archive Search(以前称为Class Search)进行搜索。当一个新的归档文件被部署到Artifactory时,它的内容被索引,表被更新。这些归档文件可以是.jar, .war, .zip或其他归档类型,如文件中所定义的:
$ {ARTIFACTORY_HOME} / etc / mimetypes.xml
每当Artifactory的垃圾收集删除已索引的工件时,条目就会从该表中删除。因此,该表将不保存不存在的工件的索引。
我们注意到,在很多情况下,与归档索引相关的表会占用大约40%的DB存储,并且在删除工件等相关操作期间会增加DB CPU使用率。因此,我们建议在不使用此功能的情况下禁用此功能。
要验证您的组织中是否正在使用此功能,您可以检查Artifactory请求日志并搜索到以下路径的请求:
/ api /搜索/存档
/ ui / api / v1 / ui / artifactsearch /类
这些将表明正在使用该功能,以及请求的来源。
要禁用特定文件类型的归档索引,请使用以下说明。
禁用存档索引
Artifactory 7.倍
使用这个指令在本文中,从管理设置UI禁用该特性。
Artifactory 6.倍
编辑mimetypes.xml,并将文件类型的index属性的值从true更改为false。禁用特定mime类型的未来索引不会从数据库中删除现有索引。
在禁用归档索引特性(两个版本)后清理未使用的表
以下是从数据库中删除索引并仅对必要的mime类型重新建立索引的步骤。注意:由于这些指令将导致从数据库中删除,因此要非常小心地正确执行这些步骤,以避免造成损坏的可能性:
1.使用上面部分中的步骤禁用归档索引功能
2.关闭Artifactory
3.使用以下SQL查询截断归档相关表的所有内容:
截断indexed_archives_entries;
TRUNCATE indexed_archives CASCADE;
TRUNCATE archive_names CASCADE;
TRUNCATE archive_paths CASCADE;
4.开始Artifactory
可选:恢复归档索引数据
如果你想在修改mimetypes.xml并清理上述表后恢复存档索引数据,你可以运行以下REST查询来计算存档索引:
curl -X POST -uadmin:password https://{server_name}:{port_number}/artifactory/api/archiveIndex/*
您可以指定单个存储库键或使用星号(*)来触发所有本地和缓存存储库的计算。
注意:这个REST查询需要一个admin用户。此外,这个过程可能是资源密集型的。因此,我们建议在服务器负载不重的时候启动它。我们还建议您一次重新索引一个存储库,以限制您将对系统施加的压力。
