Eseguire una verifica di coerenza dell’archivio dati tramite oak-run
Scopri come eseguire una verifica di coerenza dell’archivio dati tramite oak-run in Adobe Experience Manager.
Descrizione description
Ambiente
Adobe Experience Manager (AEM)
Problema
La verifica di coerenza dell’archivio dati segnala eventuali dati binari mancanti ma a cui si fa ancora riferimento. La verifica di coerenza può essere attivata direttamente dalla console Felix.
Potrebbe essere attivato da MarkSweepGarbageCollector#checkConsistency Mbean
.
Se BlobGC MBeans
sono registrati in MBeanServer
, è possibile utilizzare anche i seguenti mbean
:
BlobGCMbean#checkConsistency
Al termine della verifica di coerenza, un messaggio mostra il numero di dati binari segnalati come mancanti. Se il numero è maggiore di 0(zero), controllare i registri configurati per org.apache.jackrabbit.oak.plugins.blob .MarkSweepGarbageCollector
per ulteriori dettagli sui file binari mancanti.
Di seguito è riportato un esempio di come i file binari mancanti vengono segnalati nei registri:
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
A differenza dell'interfaccia utente di /system/console/repositorycheck
, lo strumento oak-run controlla i file di indice Lucene nascosti in /oak: index
oltre al resto dei percorsi di contenuto. Il comando datastorecheck
di oak-run può essere utilizzato per eseguire una verifica di coerenza sull'archivio dati. Di seguito sono riportati i passaggi dettagliati per l’esecuzione del comando:
Risoluzione resolution
-
Scarica la versione oak-run jar 1.8.8 o successiva sul server AEM.
-
Posizionare il file jar oak run nella stessa directory in cui è posizionato
crx-quickstart
. In caso contrario, specificare il percorso completo dioak-run-*.jar
durante l'esecuzione del comando. -
Esegui il comando seguente (aggiorna i percorsi di segmentstore e datastore in base all'ambiente in uso):
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
-
Il comando genera una verifica di coerenza dell’archivio dati.
Lo strumento di verifica della coerenza per l’archivio dati può anche essere utilizzato per elencare tutti i riferimenti BLOB nell’archivio nodi e tutti gli ID BLOB disponibili nell’archivio dati. Utilizza il comando seguente:
$ java-jar oak-run-*.jar datastorecheck [ --id] [ --ref] [ --consistency] \
[ --store |] \
[ --s3ds |--fds] \
[ --dump] \
[ --track]
Fornisci una o più tra le seguenti opzioni disponibili:
—id - Elenca tutti gli ID nell'archivio dati.
—ref - Elenca tutti i riferimenti blob nell'archivio nodi.
—consistency - Elenca tutti i blob mancanti facendo un controllo di coerenza.
Le opzioni seguenti sono facoltative:
—store - Percorso all'archivio segmenti di mongo uri (richiesto per le opzioni —ref e —consistency precedenti).
—dump - Percorso dove scaricare i file (facoltativo). In caso contrario, i file vengono scaricati nella directory tmp dell’utente.
—s3ds - Percorso del file di configurazione S3DataStore.
—fds - Percorso del file di configurazione FileDataStore (la proprietà "path" è obbligatoria).
—track - Percorso della home directory dell'archivio locale (facoltativo). Inserisce una copia degli ID BLOB scaricati da tracciare.