ARTIFACTORY:迁移基础
迁移的基础
人工迁移是将完整的人工设置从一个环境复制到另一个环境的过程。
只有在需要将设置移动到新位置时才应该进行迁移
***不应将迁移用作升级的替代品。
人工组件概述
工厂主要由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指南在这个过程中,如果你喜欢把事情写下来,请遵循以下步骤;
- 从LB中移除Artifactory节点
- 执行完整的系统出口启用了排除内容。请不要勾选“排除元数据”框,因为这些是存储在数据库中的二进制文件。
- 在目标数据库中创建一个新模式。创建新方案和“人工”用户的确切SQL命令可以在我们的wiki (PostgreSQL,MySQL,甲骨文,Microsoft SQL Server,MariaDB)
- 停止Artifactory
- 将实例配置为连接到新数据库system.yaml文件。
- 执行完整的系统导入
