Como executar uma verificação de consistência do armazenamento de dados via oak-run
Saiba como executar uma verificação de consistência do armazenamento de dados via oak-run no Adobe Experience Manager.
Descrição :headding-anchor:description
Ambiente
Adobe Experience Manager (AEM)
Problema
A verificação de consistência do armazenamento de dados relatará todos os binários de armazenamento de dados que estão ausentes, mas ainda são referenciados. A verificação de consistência pode ser acionada diretamente pelo console Felix.
Pode ser disparado de MarkSweepGarbageCollector#checkConsistency Mbean
.
Se os BlobGC MBeans
estiverem registrados no MBeanServer
, o seguinte mbean
também poderá ser usado:
BlobGCMbean#checkConsistency
Após a conclusão da verificação de consistência, uma mensagem mostrará o número de binários relatados como ausentes. Se o número for maior que 0(zero), verifique os logs configurados para org.apache.jackrabbit.oak.plugins.blob .MarkSweepGarbageCollector
para obter mais detalhes sobre os binários ausentes.
Veja abaixo um exemplo de como os binários ausentes são relatados nos logs:
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
Ao contrário da interface do usuário do /system/console/repositorycheck
, a ferramenta oak-run verifica os arquivos de índice do lucene ocultos em /oak: index
, além dos caminhos de conteúdo restantes. O comando datastorecheck
de oak-run pode ser usado para executar uma verificação de consistência no armazenamento de dados. As etapas detalhadas sobre como executar o comando estão detalhadas abaixo:
Resolução :headding-anchor:resolution
-
Baixe o oak-run jar 1.8.8 ou a versão posterior no servidor AEM.
-
Coloque o jar de execução do oak no mesmo diretório em que
crx-quickstart
é colocado ou forneça o caminho completo deoak-run-*.jar
enquanto executa o comando abaixo. -
Execute o comando abaixo (atualize os caminhos para o armazenamento de segmentos e o armazenamento de dados de acordo com seu ambiente):
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
-
O comando geraria uma verificação de consistência do armazenamento de dados.
O Verificador de consistência do DataStore também pode ser usado para listar todas as referências de blob no armazenamento de nó e todas as IDs de blob disponíveis no armazenamento de dados. Use o seguinte comando:
$ java-jar oak-run-*.jar datastorecheck [ --id] [ --ref] [ --consistency] \
[ --store |] \
[ --s3ds |--fds] \
[ --dump] \
[ --track]
Forneça uma ou mais destas opções disponíveis:
—id - Lista todas as ids no armazenamento de dados.
—ref - Lista todas as referências de blob no armazenamento de nós.
—consistency - Lista todos os blobs ausentes fazendo uma verificação de consistência.
As opções disponíveis são as seguintes:
—store - Caminho para o armazenamento de segmentos do URI mongo (Obrigatório para as opções —ref e —consistency mencionadas acima).
—dump - Caminho onde os arquivos serão despejados (opcional). Caso contrário, os arquivos serão despejados no diretório tmp do usuário.
—s3ds - Caminho para o arquivo de configuração do S3DataStore.
—fds - Caminho para o arquivo de configuração FileDataStore (a propriedade "caminho" é obrigatória).
—track - Caminho da pasta base do repositório local (Opcional). Ele coloca uma cópia das IDs de blob baixados para serem rastreadas.