ARTIFACTORY:迁移基础

沙尼•阿蒂亚斯
2023-01-22 11:09

迁移的基础

人工迁移是将完整的人工设置从一个环境复制到另一个环境的过程。
只有在需要将设置移动到新位置时才应该进行迁移
***不应将迁移用作升级的替代品。

人工组件概述

工厂主要由3个部分组成:

  • 应用服务器(Apache Tomcat server)负责处理所有人工活动的服务器,如REST API请求、维护活动、复制等。
  • 数据库—数据库包含所有关于工件的信息,包括用户、组、对存储库的权限,以及每个工件的信息,如工件名称和完整路径。
  • Filestore-保留工件(文件)。保存在Filestore中的构件按照它们的sha1校验和进行组织。在文件存储库中没有关于工件的信息(例如工件名称、路径、创建日期等)。此信息仅保存在数据库中。

系统迁移流程

完整的系统迁移包括将上述每个组件迁移到一个新位置。

  • 应用服务器迁移是通过在新位置重新安装Artifactory服务器来完成的。
  • DB(数据)迁移应该通过执行完整的系统导出和导入“排除内容”来完成。在这种情况下,只迁移保存在DB中的数据。工件本身不会被迁移。
  • Filestore迁移是否通过将整个数据文件夹复制到新位置来完成

***有一个选项可以通过执行完整的系统导出和导入来将DB和文件存储一起迁移。但是,如果您有一个大型实例,并且需要最小的停机时间,那么推荐的迁移选项是这里描述

在所描述的方法中,我们需要一个新的DB,并手动将文件存储库复制到新实例中,因为它包含所有二进制文件。
我们在此过程中使用新DB的原因是为了防止与现有数据发生冲突。
我们还将做一个完整的系统导出和导入(使用“排除内容”导出,因为我们已经迁移了二进制文件)。这将用二进制引用填充DB,还将导入Artifactory和Access配置。
人工配置指的是人工骨架配置,比如存储库、复制、身份验证提供程序(LDAP、SAML…)等。
访问配置包括用户、组、权限和访问令牌。
如果只需要导入Access数据,可以参考此知识库

移民常见问题解答:

我们可以按照迁移步骤从版本6迁移吗?X到7 X ?

虽然可以迁移Artifactory 6。x到人工工厂7。x,the best practice would be to first upgrade the existing 6.x instance to version 7.x and only then follow the migration steps.
这背后的原因是版本7。X介绍了几种重大变化突发的变化升级过程可以处理,但迁移可能会失败。

作为迁移的一部分,我们计划切换到云存储,我们应该如何复制二进制文件?

除非您要迁移到S3存储桶,否则您应该手动复制二进制文件,但是,有一些外部工具可以帮助您完成这项工作。例如,对于Azure Blob,您应该使用AzCopy

如果您计划使用S3存储桶,那么有两种选择来迁移二进制文件。
我们可以将文件存储复制到现有实例中的S3桶中,然后继续迁移过程(选项A),也可以在新实例建立之后将二进制文件复制到S3桶中(选项B)。

选项一:
为了迁移到现有实例中的S3桶,您应该参考我们的wiki页面,将文件存储迁移到S3
在这个过程中,我们正在利用最终二进制提供程序自动文件存储迁移

选项B:
在安装了新的Artifactory实例之后,将二进制文件迁移到S3存储桶中,需要将二进制文件手动复制到存储桶中,这超出了JFrog的作用域。
然而,它可以很容易地实现AWS CLI

如何实现分片二进制提供程序作为迁移的一部分?

如果当前正在使用本地文件存储库/NFS,并且希望在新环境中使用分片,则应该将二进制文件复制到新分片中,并相应地更新binarstore .xml文件。
接下来,为了平衡冗余使用优化系统存储REST API。
注意,这将平衡冗余,而不是每个分片中的存储大小/计数。

我们只想迁移到一个新的数据库,如何在不迁移整个实例的情况下实现这一目标?

我们有很棒的YouTube指南在这个过程中,如果你喜欢把事情写下来,请遵循以下步骤;

  1. 从LB中移除Artifactory节点
  2. 执行完整的系统出口启用了排除内容。请不要勾选“排除元数据”框,因为这些是存储在数据库中的二进制文件。
  3. 在目标数据库中创建一个新模式。创建新方案和“人工”用户的确切SQL命令可以在我们的wiki (PostgreSQL,MySQL,甲骨文,Microsoft SQL Server,MariaDB
  4. 停止Artifactory
  5. 将实例配置为连接到新数据库system.yaml文件。
  6. 执行完整的系统导入