CRX2Oak は、異なるリポジトリ間でデータを移行するために設計されたツールです。
このツールを使用して、Apache Jackrabbit 2 をベースとする以前の CQ バージョンから Oak にデータを移行したり、Oak リポジトリ間でデータをコピーしたりできます。
次の場所で、パブリックAdobeリポジトリから最新バージョンの crx2oak をダウンロードできます。
https://repo.adobe.com/nexus/content/groups/public/com/adobe/granite/crx2oak/
最新バージョンの変更点と修正点の一覧は、CRX2Oak のリリースノートにあります。
Apache Oak と AEM の永続性の主要な概念について詳しくは、AEM プラットフォームの紹介を参照してください。
このツールでは以下のことが可能です。
外部の BLOB ストア(一般的にはデータストアとして知られる)を使用したリポジトリ移行のサポートは、様々な組み合わせで提供されています。考えられる移行パスの 1 つは、外部 FileDataStore
を使用する CRX2 リポジトリから S3DataStore
を使用する Oak リポジトリへの移行です。
下の図は、CRX2Oak がサポートしているすべての移行の組み合わせを示したものです。
CRX2Oak は AEM のアップグレード中に呼び出され、このとき、永続性モードの再設定を自動化する事前定義済みの移行プロファイルをユーザーが指定できます。これはクイックスタートモードと呼ばれます。
より詳細なカスタマイズが必要な場合は、CRX2Oak を個別に実行することもできます。ただし、このモードでは、変更はリポジトリに対してのみ加えられるので、その他の AEM の再設定は手動で実行する必要があります。これはスタンドアロンモードと呼ばれます。
また、スタンドアロンモードのデフォルト設定では、ノードストアのみが移行され、新しいリポジトリは古いバイナリストレージを再使用することにも注意してください。
AEM 6.3 以降、CRX2Oak はユーザー定義の移行プロファイルを処理できるようになりました。このプロファイルには、既に使用可能なすべての移行オプションを設定できます。これにより、柔軟性が向上すると同時に、AEM の設定を自動化できます。スタンドアロンモードでこのツールを使用している場合は、このような機能は使用できません。
CRX2Oak をクイックスタートモードに切り替えるには、次のオペレーティングシステム環境変数を使用して、AEM インストールディレクトリの crx-quickstart フォルダーへのパスを定義する必要があります。
UNIX ベースのシステムおよび Mac OS の場合
export SLING_HOME="/path/to/crx-quickstart"
Windows の場合:
SET "SLING_HOME=/path/to/crx-quickstart"
移行はいつでも中断でき、後で再開することができます。
カスタム Java ロジックを使用し、 CommitHooks
. カスタム RepositoryInitializer
クラスを実装して、カスタム値でリポジトリを初期化できます。
CRX2Oak はデフォルトで、メモリマップ操作もサポートしています。メモリマップはパフォーマンスを大幅に向上させるので、可能な場合は常に使用する必要があります。
ただし、メモリマップ操作は Windows プラットフォームではサポートされないことに注意してください。したがって、 —disable-mmap Windows で移行を実行する際のパラメーター。
デフォルトでは、このツールは、 "/"
パス。 しかし、どのコンテンツを移行するかは完全に制御できます。
新しいインスタンスで不要な部分がコンテンツに存在する場合は、 --exclude-path
パラメーターを使用して、コンテンツの除外やアップグレード手順の最適化をおこないます。
2 つのリポジトリ間でデータをコピーする必要があり、両方のインスタンスで異なるコンテンツパスを持つ場合、 --merge-path
パラメーター。 定義すると、CRX2Oak は新しいノードのみをコピー先リポジトリにコピーし、古いノードは元の場所に保持します。
デフォルトでは、AEM は変更されたノードまたはページごとにバージョンを作成し、リポジトリ内に保存します。これらのバージョンを使用して、ページを以前の状態に復元できます。
ただし、元のページが削除されても、これらのバージョンはパージされません。長時間使用されているリポジトリを扱う場合は、孤立したバージョンによって生じた多数の冗長なデータを移行で処理しなければならないことがあります。
このような状況で役立つ機能は、 --copy-versions
パラメーター。 リポジトリの移行またはコピー中にバージョンノードをスキップするために使用できます。
孤立したバージョンをコピーするかどうかを選択するには、 --copy-orphaned-versions=true
.
特定の日付までのバージョンをコピーする場合、どちらのパラメーターも日付形式 YYYY-MM-DD
をサポートしています。
オープンソース版の CRX2Oak は、oak-upgrade の形で入手できます。このツールは、次の機能を除くすべての機能をサポートしています。
詳しくは、Apache に関するドキュメントを参照してください。
--cache
:キャッシュサイズ(MB 単位)( デフォルトは 256
)
--mmap
:セグメントストアのメモリマッピングファイルアクセスを有効にする
--src-password:
ソース RDB データベースのパスワード
--src-user:
ソース RDB のユーザー
--user
:ターゲット RDB のユーザー
--password
:ターゲット RDB のパスワード。
--early-shutdown
:ノードのコピー後、およびコミットフックの適用前に、ソース JCR2 リポジトリをシャットダウンします。
--fail-on-error
:ノードをソースリポジトリから読み取れない場合に、強制的に移行が失敗します。
--ldap
:LDAP ユーザーを CQ 5.x インスタンスから Oak ベースのインスタンスに移行します。 この機能を有効にするには、Oak 設定内の ID プロバイダーを ldap という名前にする必要があります。詳しくは、LDAP に関するドキュメントを参照してください。
--ldap-config:
これを --ldap
複数の LDAP サーバーを認証に使用した CQ 5.x リポジトリのパラメーター。 CQ 5.x を指すのに使用できます ldap_login.conf
または jaas.conf
設定ファイル。 形式は、 --ldapconfig=path/to/ldap_login.conf
.
--copy-orphaned-versions
:孤立したバージョンのコピーをスキップします。 次のパラメーターがサポートされています。 true
, false
および yyyy-mm-dd
. デフォルトは true
.
--copy-versions:
バージョンストレージをコピーします。 パラメーター: true
, false
, yyyy-mm-dd
. デフォルトは true
.
--include-paths:
コピー時に含めるパスのコンマ区切りリスト--merge-paths
:コピー時に結合するパスのコンマ区切りリスト--exclude-paths:
コピー時に除外するパスのコンマ区切りリスト。--src-datastore:
ソースとして使用するデータストアディレクトリ FileDataStore
--src-fileblobstore
:ソースとして使用するデータストアディレクトリ FileBlobStore
--src-s3datastore
:ソースに使用するデータストアディレクトリ S3DataStore
--src-s3config
:ソースの設定ファイル S3DataStore
.
--datastore:
ターゲットとして使用するデータストアディレクトリ FileDataStore
--fileblobstore:
ターゲットとして使用するデータストアディレクトリ FileBlobStore
--s3datastore
:ターゲットに使用するデータストアディレクトリ S3DataStore
--s3config
:ターゲットの設定ファイル S3DataStore
.
-?, -h, --help:
ヘルプ情報を表示します。処理中に発生する可能性があるすべての問題をトラブルシューティングするために、移行プロセス用のデバッグ情報を有効にすることもできます。有効にする方法は、ツールを実行するモードによって異なります。
CRX2Oak モード | 動作 |
クイックスタートモード | 次の項目を追加できます。 — ログレベルのTRACE または —log-level DEBUG CRX2Oak を実行する際のコマンドラインへのオプション。 このモードでは、ログは upgrade.log ファイル. |
スタンドアロンモード | を —trace 標準出力にTRACEイベントを表示する CRX2Oak コマンドラインのオプション(リダイレクト文字を使用してログを自分でリダイレクトする必要があります)'>'または'tee'コマンドを使用して、後で検査を行うことができます )。 |
MongoDB 複製セットに移行する場合は、Mongo データベースへのすべての接続で、WriteConcern
パラメーターを 2
に設定します。
次のように、接続文字列の末尾に w=2
パラメーターを付加することによって設定できます。
java -Xmx4092m -XX:MaxPermSize=1024m -jar crx2oak.jar crx-quickstart/repository/ mongodb://localhost:27017/aem-author?replicaset=replica1&w=2
詳しくは、MongoDB の接続文字列に関するドキュメントで書き込み確認について参照してください。