首页 > 解决方案 > JFrog Artifactory 系统还原失败

问题描述

在我们的组织中,我们正在运行 Artifactory Pro 版本,每天将数据导出到 NAS 驱动器(完整系统导出)。每天晚上它会运行大约 4 个小时,并写下“系统导出成功”。是时候将我们的实例迁移到基于 PostgreSQL(现在在 derby 上运行)了。我已阅读您需要使用完整的系统导入来完成此操作。

几个数字:

如果您还在思考为什么导出数据量比磁盘空间使用量大 2 倍以上,我们的猜测是 docker 镜像在存储在 docker 注册表中时(每层)进行了重复数据删除,但在导出时没有重复数据删除。

此外,我通过将数据同步到另一台服务器,然后在那里启动完全相同的设置,成功迁移了实例。工作得很好。

在另一台机器上启动完全相同的设置(全新安装)并运行系统导入时,它会失败并显示以下日志:

[/data/artifactory/logs/artifactory.log] -   "errors" : [ {
[/data/artifactory/logs/artifactory.log] -     "code" : "INTERNAL_SERVER_ERROR",
[/data/artifactory/logs/artifactory.log] -     "message" : "Unable to import access server",
[/data/artifactory/logs/artifactory.log] -     "detail" : "File '/root/.jfrog-access/etc/access.bootstrap.json' does not exist"
[/data/artifactory/logs/artifactory.log] -   } ]
[/data/artifactory/logs/artifactory.log] - }

完整日志在这里:https ://pastebin.com/ANZBiwHC

/root/.jfrog-access 目录是 Access 主目录(Access 也使用 derby)。

我在这里想念什么?

标签: artifactory

解决方案


根据 Artifactory 文档,我们做错了几件事:

  • 导出不是备份大实例的正确方法。在使用 derby 运行 Artifactory 的情况下,将文件存储和 derby 目录同步到 NAS 就足够了。
  • 不支持多个 Artifactory 版本的增量导出。意思是,如果您在 4.xx 版上进行了完全导出,那么您升级到 5.xx 版,然后升级到 6.xx 版,并且您在此过程中进行了增量导出......那么您的导出将不会导入到版本中6.xx 每次版本升级后,都需要创建实例的新完整导出。

我通过删除导出并执行完整的系统导出(大约 30 小时)解决了这种情况。完整系统导出已成功导入另一个实例(大约 12 小时)。

PS这个错误对我来说仍然很神秘。


推荐阅读