使用CRX2Oak迁移工具 using-the-crx-oak-migration-tool

简介 introduction

CRX2Oak是一种用于在不同存储库之间迁移数据的工具。

它可用于将数据从基于Apache Jackrabbit 2的较旧CQ版本迁移到Oak,它也可用于在Oak存储库之间复制数据。

您可以从公共Adobe存储库下载最新版本的crx2oak,网址为:
https://repo1.maven.org/maven2/com/adobe/granite/crx2oak/

NOTE
有关Apache Oak以及Adobe Experience Manager (AEM)持久性的关键概念的更多信息,请参阅 AEM平台简介.

迁移用例 migration-use-cases

该工具可用于:

  • 从旧版CQ 5迁移到AEM 6
  • 在多个Oak存储库之间复制数据
  • 在不同的Oak MicroKernel实现之间转换数据。

支持使用外部Blob存储(通常称为数据存储)迁移存储库,但支持使用不同的组合。 一个可能的迁移路径来自使用外部的CRX2存储库 FileDataStore 到Oak存储库 S3DataStore.

下图说明了CRX2Oak支持的所有可能的迁移组合:

chlimage_1-151

功能 features

CRX2Oak在AEM升级期间以用户可指定预定义迁移配置文件的方式进行调用,该配置文件可自动重新配置持久性模式。 这称为快速启动模式。

如果需要进行更多自定义,它也可以单独运行。 但是,在此模式下,只能对存储库进行更改,并且必须手动对AEM执行任何其他重新配置。 这称为独立模式。

另外要注意的是,在独立模式下使用默认设置时,只会迁移节点存储,而新存储库会重用旧的二进制存储。

自动快速启动模式 automated-quickstart-mode

自AEM 6.3起,CRX2Oak能够处理用户定义的迁移配置文件,该配置文件可使用所有可用的迁移选项进行配置。 这样既提高了灵活性,又能够自动配置AEM,在独立模式下使用该工具时,这些功能将不可用。

要将CRX2Oak切换到快速启动模式,请通过此操作系统环境变量在AEM安装目录中定义crx-quickstart文件夹的路径:

对于基于UNIX的系统和macOS:

export SLING_HOME="/path/to/crx-quickstart"

对于Windows:

SET "SLING_HOME=/path/to/crx-quickstart"

恢复支持 resume-support

迁移可以在任何时候中断,并且以后可以恢复。

可自定义的升级逻辑 customizable-upgrade-logic

可以使用实现自定义Java™逻辑 CommitHooks. 自定义 RepositoryInitializer 可以实施类以使用自定义值初始化存储库。

支持内存映射操作 support-for-memory-mapped-operations

默认情况下,CRX2Oak还支持内存映射操作。 内存映射可大大提高性能,应尽可能使用。

CAUTION
但请注意,Windows平台不支持内存映射操作。 因此,建议添加 —disable-mmap 在Windows上执行迁移时的参数。

选择性迁移内容 selective-migration-of-content

默认情况下,该工具会将整个存储库迁移到 "/" 路径。 但是,您可以完全控制应该迁移哪些内容。

如果新实例上不需要内容的任何部分,您可以使用 --exclude-path 用于排除内容并优化升级过程的参数。

路径合并 path-merging

如果必须在两个存储库之间复制数据,并且您的内容路径在两个实例上均不同,则可以在以下位置定义该数据: --merge-path 参数。 执行此操作时,CRX2Oak仅将新节点复制到目标存储库中,并将旧节点保持不变。

chlimage_1-152

版本支持 version-support

默认情况下,AEM会为每个要修改的节点或页面创建一个版本,并将其存储在存储库中。 然后,可以使用这些版本将页面还原到以前的状态。

但是,即使删除了原始页面,也不会清除这些版本。 在处理已运行很长时间的存储库时,迁移可能会重新处理由孤立版本导致的冗余数据。

对于这些类型的情况,一个有用的功能是添加 --copy-versions 参数。 它用于在迁移或复制存储库期间跳过版本节点。

您还可以通过添加选择是否复制孤立版本 --copy-orphaned-versions=true.

这两个参数还支持 YYYY-MM-DD 日期格式,以防您不晚于特定日期复制版本。

chlimage_1-153

开源版本 open-source-version

CRX2Oak的开源版本以oak-upgrade的形式提供。 它支持所有功能,但以下功能除外:

  • CRX2支持
  • 迁移配置文件支持
  • 支持自动AEM重新配置

请参阅 Apache文档 以了解更多信息。

参数 parameters

节点存储选项 node-store-options

  • --cache:缓存大小(以MB为单位,默认值为 256)

  • --mmap:为区段存储启用内存映射文件访问

  • --src-password: 源RDB数据库的密码

  • --src-user: 源RDB的用户

  • --user:目标RDB

  • --password:目标RDB的密码。

迁移选项 migration-options

  • --early-shutdown:在复制节点之后和应用提交挂接之前关闭源JCR2存储库

  • --fail-on-error:如果无法从源存储库中读取节点,则强制迁移失败。

  • --ldap:将LDAP用户从CQ 5.x实例迁移到基于Oak的实例。 要使此功能正常工作,必须将Oak配置中的身份提供程序命名为ldap。 欲了解更多信息,请参见 LDAP文档.

  • --ldap-config: 将此用于 --ldap 使用多个LDAP服务器进行身份验证的CQ 5.x存储库的参数。 您可以使用它指向CQ 5.x ldap_login.confjaas.conf 配置文件。 格式为 --ldapconfig=path/to/ldap_login.conf.

版本存储选项 version-store-options

  • --copy-orphaned-versions:跳过复制孤立版本。 支持的参数包括: truefalse、和 yyyy-mm-dd. 默认为 true.

  • --copy-versions: 复制版本存储。 参数: truefalseyyyy-mm-dd. 默认为 true.

路径选项 path-options

  • --include-paths: 复制过程中要包含的以逗号分隔的路径列表
  • --merge-paths:复制期间要合并的路径列表(以逗号分隔)
  • --exclude-paths: 复制期间要排除的以逗号分隔的路径列表。

源Blob存储选项 source-blob-store-options

  • --src-datastore: 用作源的数据存储目录 FileDataStore

  • --src-fileblobstore:用作源的数据存储目录 FileBlobStore

  • --src-s3datastore:要用于源的数据存储目录 S3DataStore

  • --src-s3config:源的配置文件 S3DataStore.

目标BlobStore选项 destination-blobstore-options

  • --datastore: 用作目标的数据存储目录 FileDataStore

  • --fileblobstore: 用作目标的数据存储目录 FileBlobStore

  • --s3datastore:用于目标的数据存储目录 S3DataStore

  • --s3config:目标的配置文件 S3DataStore.

帮助选项 help-options

  • -?, -h, --help: 显示帮助信息。

调试 debugging

您还可以启用迁移过程的调试信息,以解决迁移过程中可能出现的任何问题。 根据您希望在其中运行工具的模式,您可以采用不同的方式执行此操作:

CRX2Oak模式
操作
快速入门模式
您可以添加 — 日志级别TRACE— 日志级别DEBUG 选项到运行CRX2Oak时的命令行。 在此模式下,日志会自动重定向到 upgrade.log文件.
独立模式
添加 —trace CRX2Oak命令行选项,以便您可以在标准输出中显示TRACE事件(您必须使用重定向字符“>”或“T”命令自己重定向日志,以供以后检查)。

其他注意事项 other-considerations

迁移到MongoDB复制副本集时,请确保设置 WriteConcern 参数至 2 所有与Mongo数据库的连接。

为此,您可以添加 w=2 连接字符串末尾的参数,如下所示:

java -Xmx4092m -jar crx2oak.jar crx-quickstart/repository/ mongodb://localhost:27017/aem-author?replicaset=replica1&w=2
NOTE
有关详细信息,请参见MongoDB连接字符串文档,该文档位于 编写关注点.
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2