使用CRX2Oak迁移工具 using-the-crx-oak-migration-tool
简介 introduction
CRX2Oak是一款用于在不同存储库之间迁移数据的工具。
它可用于将基于Apache Jackrabbit 2的旧版CQ数据迁移到Oak,还可用于在Oak存储库之间复制数据。
您可以从以下位置的公共Adobe存储库下载最新版本的crx2oak:
https://repo.adobe.com/nexus/content/groups/public/com/adobe/granite/crx2oak/
最新版本的更改和修复列表可在 CRX2Oak发行说明.
迁移用例 migration-use-cases
该工具可用于:
- 从旧版CQ 5迁移到AEM 6
- 在多个Oak存储库之间复制数据
- 在不同Oak MicroKernel实施之间转换数据。
以不同的组合提供了对使用外部Blob存储区(通常称为数据存储区)迁移存储库的支持。 一个可能的迁移路径来自使用外部存储库的CRX2存储库 FileDataStore
使用 S3DataStore
.
下图说明了CRX2Oak支持的所有可能迁移组合:
功能 features
在AEM升级期间,会调用CRX2Oak,用户可以在该方式中指定一个预定义的迁移配置文件,以自动重新配置持久性模式。 这称为快速启动模式。
它还可以单独运行,以防需要更多自定义。 但是,请注意,在此模式下,仅对存储库进行更改,需要手动执行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还支持内存映射操作。 内存映射可显着提高性能,应尽可能使用。
内容的选择性迁移 selective-migration-of-content
默认情况下,该工具会在 "/"
路径。 但是,您可以完全控制应迁移的内容。
如果内容中有任何部分不是新实例所必需的,则可以使用 --exclude-path
参数来排除内容并优化升级过程。
路径合并 path-merging
如果需要在两个存储库之间复制数据,并且这两个存储库的内容路径不同,则可以在 --merge-path
参数。 完成此操作后,CRX2Oak将仅将新节点复制到目标存储库,并保留旧节点。
版本支持 version-support
默认情况下,AEM将创建每个被修改的节点或页面的版本,并将其存储在存储库中。 然后,可以使用这些版本将页面恢复到较早状态。
但是,即使删除了原始页面,这些版本也永远不会被清除。 在处理已运行很长时间的存储库时,迁移可能需要处理由孤立版本导致的大量冗余数据。
对于这些类型的情况,一个有用的功能是 --copy-versions
参数。 它可用于在迁移或复制存储库期间跳过版本节点。
您还可以通过添加 --copy-orphaned-versions=true
.
这两个参数还支持 YYYY-MM-DD
日期格式,以防您要在特定日期之前复制版本。
开源版本 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
参数。 您可以使用它指向CQ 5.xldap_login.conf
或jaas.conf
配置文件。 格式为--ldapconfig=path/to/ldap_login.conf
.
版本存储选项 version-store-options
-
--copy-orphaned-versions
:跳过复制孤立版本。 支持的参数包括:true
,false
和yyyy-mm-dd
. 默认为true
. -
--copy-versions:
复制版本存储。 参数:true
,false
,yyyy-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
您还可以为迁移过程启用调试信息,以便对可能在该过程中出现的任何问题进行故障诊断。 根据您希望在以下位置运行工具的模式,您可以以不同方式执行此操作:
其他注意事项 other-considerations
迁移到MongoDB复制副本集时,请确保设置 WriteConcern
参数 2
所有与Mongo数据库的连接。
为此,您可以通过添加 w=2
参数,如下所示:
java -Xmx4092m -XX:MaxPermSize=1024m -jar crx2oak.jar crx-quickstart/repository/ mongodb://localhost:27017/aem-author?replicaset=replica1&w=2