通过oak-run运行数据存储一致性检查
了解如何在AEM 6.4和Oak中通过oak-run运行数据存储一致性检查。
描述 description
环境
- Adobe Experience Manager (AEM) 6.4
- Oak 1.8.8及更高版本
问题/症状
当您观察到如下错误时,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 «record ID»
java.util.concurrent.ExecutionException: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record «record ID» does not exist
Caused by: java.io.IOException: org.apache.jackrabbit.core.data.DataStoreException: Record «record ID» does not exist
与 /system/console/repositorycheck
UI不同,除了其余内容路径之外,oak-run工具还会检查/oak:
索引下隐藏的Lucene索引文件。 此工具使您可以选择将索引文件还原到数据存储区,或者仅重建损坏的索引,而不是重新索引所有索引。 这记录在使用oak-run.jar管理AEM FoundationTutorials中的索引中。
分辨率 resolution
-
下载 oak-run jar 1.8.8 或更高版本到您的 AEM 服务器。
-
运行以下命令(但交换段存储和数据存储的路径以匹配您的环境):
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
-
该命令输出数据存储一致性检查。
-
使用输出还原或修复任何缺失的文件。 有关详细信息,请参阅在AEM FoundationTutorials中使用oak-run.jar管理索引。
数据存储的一致性检查器还可以列出节点存储中的所有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 的副本。
更多此类内容