Como executar uma verificação de consistência do armazenamento de dados via oak-run

Última atualização em 2022-11-16

Descrição

A verificação de consistência do armazenamento de dados reportará todos os binários do armazenamento de dados que estão ausentes, mas ainda são referenciados. A verificação de consistência pode ser acionada diretamente por Felix console.

Pode ser acionado de MarkSweepGarbageCollector#checkConsistency Feijão

Se a variável BlobGC Os MBeans estão registrados no MBeanServer então, o seguinte bean também pode 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, verifique os logs configurados para org.apache.jackrabbit.oak.plugins.blob .MarkSweepGarbageCollector para obter mais detalhes sobre os binários ausentes.

Abaixo está 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 do /system/console/repositorycheck A interface do usuário do oak-run a ferramenta verifica os arquivos de índice do lucene ocultos em /oak: index além dos caminhos de conteúdo restantes. datastorecheck comando 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

  1. Baixar oak-run jar 1.8.8 ou versão posterior para o servidor AEM.

  2. Coloque o oak-run jar no mesmo diretório em que o crx-quickstart é colocado; caso contrário, forneça o caminho completo de oak-run-*.jar durante a execução sob o comando.

  3. Execute o comando abaixo (atualize os caminhos para o armazenamento de segmentos e o armazenamento de dados de acordo com seu ambiente):

    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
    
  4. 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:

    • --storemongo - Caminho para o armazenamento de segmentos do uri (Obrigatório para as opções --ref e --consistency acima).

    • --dump - Caminho onde os arquivos serão despejados (Opcional). Caso contrário, os arquivos serão despejados no usuário tmp diretório.

    • --s3ds - Caminho para o S3DataStore arquivo de configuração.

    • --fds - Caminho para o FileDataStore arquivo de configuração (path é obrigatório).

    • --track - Caminho da pasta inicial do repositório local (Opcional). Ele coloca uma cópia das IDs de blob baixados para serem rastreadas.

Nesta página