Comment exécuter une vérification de cohérence de magasin de données via oak-run

Description


Environnement

  • Adobe Experience Manager 6.4
  • Oak 1.8.8 et versions ultérieures

Problème/Symptômes
L’outil oak-run est utile lorsque vous constatez une erreur comme celle-ci :

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


Contrairement au /system/console/repositorycheck Dans l’interface utilisateur, l’outil exécuté par Oak vérifie les fichiers d’index Lucene masqués sous /oak: en plus du reste des chemins d’accès au contenu.  Cet outil vous offre la possibilité de restaurer les fichiers d’index dans le magasin de données ou de reconstruire uniquement les index corrompus au lieu de les réindexer tous comme documenté ici.

Résolution

  1. Téléchargez oak-run jar 1.8.8 ou une version ultérieure sur votre serveur AEM.

  2. Exécutez la commande ci-dessous (mais remplacez les chemins d’accès au magasin de segments et de données pour qu’ils correspondent à votre environnement) :

    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

  3. La commande génère une vérification de cohérence du magasin de données.

  4. À l’aide de la sortie, suivez l’article pour restaurer ou corriger les fichiers manquants.

Le vérificateur de cohérence du magasin de données peut également être utilisé pour répertorier toutes les références d’objets Blob dans le magasin de nœuds et tous les identifiants d’objets Blob disponibles dans le magasin de données. Utilisez la commande suivante :

$ java-jar oak-run-*.jar datastorecheck --id --ref --consistency \

--store | \

--s3ds |--fds \

--dump \

--track

Fournissez une ou plusieurs des options suivantes :

  • —id : répertorie tous les identifiants de l’entrepôt de données.
  • —ref : répertorie toutes les références d’objets Blob dans le magasin de noeuds.
  • —consistency : Liste tous les objets Blob manquants en effectuant une vérification de cohérence.

Les options suivantes sont facultatives :

  • —store - Chemin d’accès à l’entrepôt de segments de mongo uri (Obligatoire pour les options —ref et —consistency ci-dessus).
  • —dump : chemin d’accès où vider les fichiers (facultatif). Dans le cas contraire, les fichiers sont vidés dans le répertoire tmp de l’utilisateur.
  • —s3ds - Chemin d’accès au fichier de configuration S3DataStore.
  • —fds - Chemin d’accès au fichier de configuration FileDataStore (la propriété 'path' est obligatoire).
  • —track : chemin d’accès au dossier d’accueil du référentiel local (facultatif). Cela place une copie des identifiants d’objets blob téléchargés à suivre.

Autres informations similaires

Vérification du magasin de données Oak

Sur cette page