checkMetadataConsistency
Nesta página
Definição
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 dedb.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.
Compatibilidade
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
Sintaxe
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", } )
Campos de comando
Campo | Tipo | Descrição |
---|---|---|
checkMetadataConsistency | inteiro ou string | Especifica a collection a ser verificada.
|
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. |
Saída
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 Se o cursor retornar um ID de |
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. |
Comportamento
Resultados em lote
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.
Verificar índices
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 } )
Exemplo
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 }