ARTIFACTORY:用最少的停机时间迁移大型ARTIFACTORY实例的最佳方法是什么?
最简单的迁移是为您需要的版本设置一个工作实例,但上面还没有配置或数据,只有一个空白实例,没有工件,数据库中有默认数据(新数据库,不指向旧DB)。
在按照您想要的方式工作之后,您可以使用完整的系统导出从旧实例迁移到新实例,然后在新实例上导入。
如果事情没有解决,你可以把你的DNS切换回旧实例。
上面的过程是最简单的,但是如果您希望确保两个实例在切换时包含相同的数据,则会涉及一些停机时间。
我们有一些方法可以减少甚至消除停机时间。
重要提示:
- 它是不推荐在不同版本的Artifactory之间迁移,除非绝对必要。详情请参阅支持Artifactory升级路径.
- 目标Artifactory服务器应该具有相同的“master”。key ' ($JFROG_HOME/artifactory/var/etc/security/master.key)作为使用导出/导入特性时的源服务器。在目标服务器上执行导入之前(使用下面列出的两种方法),请确保主。密钥与源上使用的密钥相同。有关主机的更多信息。键以及如何旋转/引导它,见以下:
钥匙管理
如何恢复主密钥
方法1:
- 在“垃圾收集”部分下编辑“Cron表达式”,以便安排下一次GC运行时足够远,这样它就不会在迁移两台服务器时发生。
- 旧服务器:将$ARTIFACTORY_HOME/data/filestore文件夹复制到新服务器的文件存储文件夹(在Artifactory 7中)。x,路径为$JFROG_HOME/artifactory/var/data/artifactory/filestore)
- 旧服务器:将服务器从网络中移除以阻止新请求
- 旧服务器:选择“排除内容”选项执行完整的系统导出(没有选择其他选项)
- 旧服务器:关闭
- 旧服务器:rsync从$ARTIFACTORY_HOME/data/filestore文件夹到新服务器的文件存储文件夹
- 新服务器:执行完全系统导入(不选择排除内容选项)。
- 新服务器:打开网络流量/将DNS切换到新服务器
- 新建服务器:管理选项卡-> Artifactory -> Maintenance ->在“垃圾收集”部分下编辑“Cron表达式”到所需的值
方法1非常快,因为它只有从最终的rsync和元数据的导出/导入开始的停机时间。方法2将提供接近于零的停机时间,但更复杂。
方法2:
- 在“垃圾收集”部分下编辑“Cron表达式”,以便安排下一次GC运行时足够远,这样它就不会在迁移两台服务器时发生。
- 旧服务器:将$ARTIFACTORY_HOME/data/filestore文件夹复制到新服务器的文件存储文件夹7。x,路径为$JFROG_HOME/artifactory/var/data/artifactory/filestore)
- 旧服务器:选择“排除内容”选项执行完整的系统导出(没有选择其他选项)
- 新服务器:执行完整的系统导入(不选择排除内容选项)
- 旧服务器:设置所有本地存储库以复制到新服务器上的存储库(如果需要,您可以禁用“同步删除”复选框)
- 新服务器:打开网络流量/将DNS切换到新服务器
- 旧服务器:执行并成功完成所有复制任务
- 旧服务器:关闭
- 新建服务器:管理选项卡-> Artifactory -> Maintenance ->在“垃圾收集”部分下编辑“Cron表达式”到所需的值
现在,如果需要回滚,可以将复制从新服务器反向复制到旧服务器,然后将DNS切换到旧服务器。如果您需要一个灾难恢复服务器,您也可以设置它。
请记住,我们强烈建议在切换到新的设置之前测试环境。在将生产流量切换到新的设置之前,强烈建议验证新环境的配置和功能。
此外,主密钥可能会在导出/导入过程中被覆盖,因此,建议在开始之前将其保存在一边,以便在需要时恢复它。
此过程的截屏可以在这个视频.