如何透過 Oak-run 執行資料存放區一致性檢查
瞭解如何透過Adobe Experience Manager中的Oak-run執行資料存放區一致性檢查。
說明 description
環境
Adobe Experience Manager (AEM)
問題
資料存放區一致性檢查會報告任何遺失但仍被參考的資料存放區二進位檔。 一致性檢查可由Felix主控台直接觸發。
觸發條件為 MarkSweepGarbageCollector#checkConsistency Mbean
.
如果 BlobGC MBeans
註冊於 MBeanServer
然後下列專案 mbean
也可以使用:
BlobGCMbean#checkConsistency
一致性檢查完成後,訊息會顯示回報為遺失的二進位檔數目。 如果數字大於 0(零),檢查設定的記錄 org.apache.jackrabbit.oak.plugins.blob .MarkSweepGarbageCollector
以取得遺失二進位檔的詳細資料。
以下是如何在記錄中報告遺失的二進位檔的範例:
11:32:39.673 INFO [ main] MarkSweepGarbageCollector.java:600 Consistency check found 1 missing blobs 11:32:39.673 WARN [ main] MarkSweepGarbageCollector.java:602 Consistency check failure in the the blob store : DataStore backed BlobStore [ org.apache.jackrabbit.oak.plugins.blob.datastore.OakFileDataStore] , check missing candidates in file /tmp/gcworkdir-1467352959243/gccand-1467352959243
不喜歡 /system/console/repositorycheck
UI,oak-run工具會檢查下隱藏的lucene索引檔案 /oak: index
除了其他內容路徑之外。 datastorecheck
命令 oak-run 可用於對資料存放區執行一致性檢查。 如何執行命令的詳細步驟詳述如下:
解決方法 resolution
-
下載Oak-run jar 1.8.8或更高版本到您的AEM伺服器。
-
將Oak run jar放置在相同的目錄中,其中
crx-quickstart
,否則提供完整路徑:oak-run-*.jar
執行下列命令時。 -
執行以下命令(根據您的環境更新區段存放區和資料存放區的路徑):
code language-none java -jar oak-run-*.jar datastorecheck --consistency --ref --id --fds crx-quickstart/install/org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStore.config --repoHome crx-quickstart/repository --store crx-quickstart/repository/segmentstore --dump temp --verbose --track
-
該命令將輸出資料存放區一致性檢查。
DataStore 的一致性檢查器還可用於列出節點存放區中的所有 blob 參照以及資料存放區中可用的所有 blob id。使用以下命令:
$ java-jar oak-run-*.jar datastorecheck [ --id] [ --ref] [ --consistency] \
[ --store |] \
[ --s3ds |--fds] \
[ --dump] \
[ --track]
提供以下一個或多個可用選項:
—id — 列出資料存放區中的所有id。
—ref — 列出節點存放區中的所有blob參照。
—consistency — 透過進行一致性檢查列出所有遺失的blob。
下列選項可供選擇:
—store - mongo uri區段存放區的路徑(以上 — ref和 — consistency選項的要求)。
—dump — 傾印檔案的路徑(選用)。 否則,會在使用者 tmp 目錄中傾印檔案。
—s3ds - S3DataStore設定檔案的路徑。
—fds - FileDataStore設定檔案的路徑('path'屬性是必要的)。
—track — 本機存放庫主資料夾的路徑(選用)。 它會放置要追踪的已下載 blob id 的副本。