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 para todos os comandos, consulte Comandos sem suporte.

  • 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.getSiblingDB("admin").runCommand( {
    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 collection, execute o comando com a opção coll :

    use library
    db.runCommand( {
    checkMetadataConsistency: 1,
    coll: "authors",
    } )
Campo
Tipo
Descrição
checkIndexes
booleano

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

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

coll
string
Define a collection para verificar se há inconsistências de metadados de sharding.
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