Definição
checkMetadataConsistencyExecuta uma série de verificações de consistência na fragmentação de metadados para um cluster, banco de dados ou collection. O comando retorna um cursor com todos ou um lote dos resultados de inconsistência encontrados.
Dica
In
mongosh, this command can also be run through thedb.checkMetadataConsistency(),db.collection.checkMetadataConsistency(), orsh.checkMetadataConsistency()helper methods.Helper methods are convenient for
mongoshusers, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.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
Observação
O comando checkMetadataConsistency é executável somente ao conectar ao mongos. mongod não suporta este comando.
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 |
|---|---|---|
| inteiro ou string | Especifica a collection a ser verificada.
|
| booleano | Define se o comando também verifica índices em metadados de fragmentação. For more information, see Check Indexes. |
| documento | Configura o cursor de retorno. |
| inteiro | Número máximo de resultados de inconsistência a serem incluídos em cada lote. |
| inteiro | Opcional. Tempo máximo, em milissegundos, em que o comando pode esperar para adquirir uma bloqueio de banco de dados . Você também pode usar este campo com |
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 |
|---|---|---|
| documento | Cursor com os resultados das verificações de inconsistência. |
| inteiro | Um número inteiro de 64 bits indicava o ID do cursor. Use o valor Se o cursor retornar um ID de |
| string | O reconhecimento de data center e a collection verificaram se há inconsistências. |
| array | Resultados das verificações de consistência dos metadados. |
| 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 }