Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

checkMetadataConsistency

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Campos de comando
  • Saída
  • Comportamento
  • Resultados em lote
  • Verificar índices
  • Exemplo
checkMetadataConsistency

Executa uma série de verificações de consistência na fragmentação de metadados para um cluster, banco de dados de dados ou collection. O comando retorna um cursor com todos ou um lote dos resultados de inconsistência do encontrados.

Dica

No mongosh, este comando também pode ser executado através dos métodos de db.checkMetadataConsistency()db.collection.checkMetadataConsistency() sh.checkMetadataConsistency() assistente do , ou.

Os métodos auxiliares são práticos para os usuários mongosh, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.

Execute este comando após as principais operações de manutenção, como atualizações e downgrades, para verificar o estado do catálogo.

Por padrão, o comando não verifica a consistência dos índices nos fragmentos. Para verificar índices, defina a opção checkIndexes .

Novidades na versão 7.0.

Esse comando está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Observação

Este comando é aceito em todos os clusters do MongoDB Atlas. Para obter informações sobre o suporte do Atlas a todos os comandos, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

  • Para verificar se há inconsistências de metadados de fragmentação em todo o cluster, execute o comando a partir do reconhecimento de data center admin .

    db.adminCommand( {
    checkMetadataConsistency: 1
    } )
  • Para verificar se há inconsistências de metadados de fragmentação no reconhecimento de data center, execute o comando a partir do contexto do reconhecimento de data center:

    use cars
    db.runCommand( {
    checkMetadataConsistency: 1
    } )
  • Para verificar se há inconsistências de metadados de fragmentação em uma coleção, execute o comando com o nome da coleção:

    use library
    db.runCommand( {
    checkMetadataConsistency: "authors",
    } )
Campo
Tipo
Descrição
checkMetadataConsistency
inteiro ou string

Especifica a collection a ser verificada.

1
Define o comando para verificar todas as collections no banco de dados de dados em busca de inconsistências de metadados. Se for executado no banco de banco de dados admin, ele verificará todas as collections em todos os bancos de dados.
"<collection>"
Define a collection para verificar inconsistências de metadados.
checkIndexes
booleano

Define se o comando também verifica índices em metadados de fragmentação.

Para obter mais informações, consulte Verificar índices.

cursor
documento
Configura o cursor de retorno.
cursor.batchSize
inteiro
Número máximo de resultados de inconsistência a serem incluídos em cada lote.

O comando checkMetadataConsistency retorna um cursor com um documento para cada inconsistência encontrada nos metadados de fragmentação. Para saber mais, consulte Tipos de inconsistência.

O documento de devolução tem os seguintes campos:

Campo
Tipo
Descrição
cursor
documento
Cursor com os resultados das verificações de inconsistência.
cursor.id
inteiro

Um número inteiro de 64 bits indicava o ID do cursor. Use o valor cursor.id com o comando getMore para recuperar o próximo lote de inconsistências.

Se o cursor retornar um ID de 0, isso indicará que não há mais lotes de informações.

cursor.ns
string
O reconhecimento de data center e a collection verificaram se há inconsistências.
cursor.firstBatch
array
Resultados das verificações de consistência dos metadados.
ok
booleano
Indica se o comando foi bem-sucedido.

O comando checkMetadataConsistency retorna resultados em lotes. Para personalizar o tamanho do lote, a opção batchSize :

var cur = db.runCommand( {
checkMetadataConsistency: 1,
cursor: {
batchSize: 10
}
} )

Se o campo cursor.id for maior que 0, você poderá utilizar com o comando getMore para recuperar o próximo lote de resultados.

O comando checkMetadataConsistency não verifica índices por padrão. Para verificar a consistência e os índices dos metadados, utilize a opção checkIndexes :

db.runCommand( {
checkMetadataConsistency: 1,
checkIndexes: true
} )

Use runCommand() para executar o comando checkMetadataConsistency :

db.runCommand( { checkMetadataConsistency: 1 } )

Exemplo de saída:

{
cursor: {
id: Long("0"),
ns: "test.$cmd.aggregate",
firstBatch: [
{
type: "MisplacedCollection",
description: "Unsharded collection found on shard different from database primary shard",
details: {
namespace: "test.authors",
shard: "shard02",
localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4")
}
}
],
},
ok: 1
}

Voltar

balancerStop