如何将Artifactory 5.1.4的Filestore配置从full-db改为file-system?
切换Artifactory 5.1.4 Filestore从full-db到file-system的实操方案
嘿,针对你在Artifactory 5.1.4里要把Filestore从full-db切换到file-system的需求,我给你整理了一步步的靠谱方案,每一步都别马虎,毕竟涉及到数据存储的变更:
1. 先做全量备份(重中之重!)
动手修改任何配置前,一定要做好这几件事:
- 备份Artifactory的数据库(尤其是存储二进制数据的表)
- 备份当前的
binarystore.xml文件(通常在$ARTIFACTORY_HOME/etc目录下) - 备份Artifactory的整个数据目录,避免迁移过程中出意外
2. 修改binarystore.xml配置
你当前的配置是cache-fs缓存层+blob(即full-db)存储,现在需要把底层存储替换为file-system。把原配置替换成下面的内容:
<config version="1"> <chain> <provider id="cache-fs" type="cache-fs"> <provider id="file-system" type="file-system"/> </provider> </chain> <provider id="cache-fs" type="cache-fs"> <cacheProviderDir>/data/cache</cacheProviderDir> <maxCacheSize>50000000000</maxCacheSize> </provider> <provider id="file-system" type="file-system"> <!-- 替换成你实际要存储二进制文件的目录,确保目录存在且Artifactory进程有读写权限 --> <fileStoreDir>/data/artifactory/filestore</fileStoreDir> </provider> </config>
配置说明:
- 保留了你原来的
cache-fs缓存配置(缓存目录和大小不变),只是把底层的blobprovider换成了file-system fileStoreDir是实际存储二进制文件的路径,你可以根据服务器磁盘情况修改,提前创建好这个目录并给Artifactory运行用户设置读写权限
3. 迁移现有二进制文件
之前所有二进制文件都存在数据库里,必须迁移到新的file-system目录才能正常使用:
- 先停止Artifactory服务,确保没有读写操作干扰
- 运行Artifactory的迁移工具(5.x版本命令如下,根据你的部署方式调整路径):
如果是Tomcat下的war包部署,可使用# 替换成你的Artifactory安装目录路径 /opt/jfrog/artifactory/bin/artifactoryctl migrateWEB-INF/bin目录下的migrateBinaryStore.sh脚本 - 等待迁移完成,耗时取决于数据库里二进制文件的总大小,别中途中断!
4. 重启验证
- 启动Artifactory服务
- 检查
$ARTIFACTORY_HOME/logs/artifactory.log有没有报错信息 - 上传一个测试文件,再尝试下载,确认功能正常
- 查看你配置的
fileStoreDir目录,应该能看到新生成的文件目录结构
额外注意事项:
- 确保
fileStoreDir所在磁盘有足够空间,至少要比当前数据库里的二进制文件总大小大 - 如果是集群部署,要确保所有节点的
binarystore.xml配置完全一致,在所有节点停止的情况下完成迁移,再逐个启动节点 - 迁移完成后,可验证数据库中的二进制数据是否已被清理(Artifactory会自动处理,但最好确认一下)
内容的提问来源于stack exchange,提问作者haz14
相关产品推荐
相关产品推荐

