問題点

oak-run ツールは、次のようなエラーが発生した場合に役立ちます。

09.11.2017 13:42:17.512 *WARN* [async-index-update-async] org.apache.jackrabbit.oak.plugins.blob.datastore.DataStoreBlobStore Error occurred while loading bytes from steam while fetching for id 4089b47c7ba7ab8015859428e7e6965eec4641e3#241
java.util.concurrent.ExecutionException: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record 4089b47c7ba7ab8015859428e7e6965eec4641e3 does not exist
Caused by: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record 4089b47c7ba7ab8015859428e7e6965eec4641e3 does not exist

/system/console/repositorycheck UI とは異なり、oak-run ツールは、残りのコンテンツパスに加えて、/oak: インデックスの下の非表示の lucene インデックスファイルを確認します。  このツールでは、インデックスファイルをデータストアに復元することも、ここに記載されているようにインデックスファイルをすべて再インデックス化する代わりに破損しているインデックスのみを再構築することもできます。

環境

AEM 6.3/Oak 1.6.6 以降のバージョン

手順

  1. 次のコマンドを実行します(ただし、セグメントストアとデータストアのパスを環境に合わせて変更してください)。

    java-jar oak-run-*.jar datastorecheck --store /app/aem/author/crx-quickstart/repository/segmentstore --fds /mnt/aem/datastore

  2. このコマンドを実行すると、データストアの整合性チェックの結果が出力されます。

  3. その出力を使用して、この記事に従って、不足しているファイルを復元または修正します。

ツールのドキュメント:

データストア向けの整合性チェッカー。また、ノードストア内のすべての blob 参照とデータストアで使用可能なすべての blob ID をリストするためにも使用できます。次のコマンドを使用します。

$ java-jar oak-run-*.jar datastorecheck [--id] [--ref] [--consistency] \
[--store |] \
[--s3ds |--fds] \
[--dump] \
[--track]
次のオプションを使用できます。

--id - データストア内のすべての ID をリストします。
--ref - ノードストア内のすべての blob 参照をリストします。
--consistency - 整合性チェックを実行して不足しているすべての blob をリストします。
上記の 1 つ以上のオプションを指定する必要があります。

--store - mongo uri のセグメントストアのパス(上記の --ref および --consistency オプションを使用する場合に必須)。
--dump - ファイルのダンプ先のパス(オプション)。指定しない場合、ファイルはユーザーの tmp ディレクトリにダンプされます。
--s3ds - S3DataStore 設定ファイルのパス。
--fds - FileDataStore 設定ファイルのパス(「path」プロパティは必須)。
--track - ローカルリポジトリのホームフォルダーのパス(オプション)。ダウンロードされた blob ID のコピーが追跡対象になります。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー