JFrog Artifactory 系统还原失败
JFrog Artifactory system restore failing
在我们的组织中,我们是 运行 Artifactory Pro 版本,每天将数据导出到 NAS 驱动器(完整系统导出)。每天晚上都是 运行 大约 4 个小时,然后写下 "system export was successful"。现在是将我们的实例迁移到基于 PostgreSQL 的时候了(运行 on derby)。我了解到您需要通过完整的系统导入来完成此操作。
几个号码:
- 文物:近100万件
- 数据大小:超过 2TB 的数据
- 导出数据量:超过5TB的数据
如果您也在思考为什么导出数据量是磁盘 space 使用量的 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 with derby,将文件存储和 derby 目录同步到 NAS 就足够了。
- 不支持对多个版本的 Artifactory 进行增量导出。意思是,如果您在版本 4.x.x 上进行了完全导出,那么您升级到版本 5.x.x,然后升级到版本 6.x.x,并且您在此过程中进行了增量导出...然后您的导出将不会导入版本 6.x.x。每次版本升级后,都需要创建实例的新完整导出。
我通过删除导出并进行完整系统导出(大约 30 小时)解决了这个问题。完整系统导出已成功导入另一个实例(大约 12 小时)。
P.S。这个错误对我来说仍然很神秘。
在我们的组织中,我们是 运行 Artifactory Pro 版本,每天将数据导出到 NAS 驱动器(完整系统导出)。每天晚上都是 运行 大约 4 个小时,然后写下 "system export was successful"。现在是将我们的实例迁移到基于 PostgreSQL 的时候了(运行 on derby)。我了解到您需要通过完整的系统导入来完成此操作。
几个号码:
- 文物:近100万件
- 数据大小:超过 2TB 的数据
- 导出数据量:超过5TB的数据
如果您也在思考为什么导出数据量是磁盘 space 使用量的 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 with derby,将文件存储和 derby 目录同步到 NAS 就足够了。
- 不支持对多个版本的 Artifactory 进行增量导出。意思是,如果您在版本 4.x.x 上进行了完全导出,那么您升级到版本 5.x.x,然后升级到版本 6.x.x,并且您在此过程中进行了增量导出...然后您的导出将不会导入版本 6.x.x。每次版本升级后,都需要创建实例的新完整导出。
我通过删除导出并进行完整系统导出(大约 30 小时)解决了这个问题。完整系统导出已成功导入另一个实例(大约 12 小时)。
P.S。这个错误对我来说仍然很神秘。