Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

checkMetadataConsistency (comando de base de datos)

checkMetadataConsistency

Realiza una serie de verificaciones de coherencia en los metadatos de particionado para un clúster, base de datos o colección. El comando devuelve un cursor con todos o un agrupar de los Se encontraron resultados inconsistentes.

Tip

En mongosh, este comando también se puede ejecutar a través de los métodos asistentes db.checkMetadataConsistency(), db.collection.checkMetadataConsistency() o sh.checkMetadataConsistency().

Los métodos asistente son convenientes para usuarios de mongosh, pero es posible que no proporcionen el mismo nivel de información que los comandos de base de datos. En los casos en que no se necesite la conveniencia o se requieran campos de retorno adicionales, utiliza el comando de base de datos.

Ejecute este comando después de realizar operaciones de mantenimiento importantes, como actualizaciones y degradaciones, para comprobar el estado del catálogo.

Por defecto, el comando no comprueba la coherencia de los índices entre las particiones. Para comprobar índices, ajuste la opción checkIndexes.

Nuevo en la versión 7.0.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte Comandos no compatibles.

  • MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB

  • MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.

Nota

El comando checkMetadataConsistency solo es ejecutable al conectarse a mongos. mongod no soporta este comando.

  • Para verificar todo el clúster en busca de inconsistencias de metadatos de fragmentación, ejecute el comando desde la base de datos admin.

    db.adminCommand( {
    checkMetadataConsistency: 1
    } )
  • Para comprobar la base de datos en busca de inconsistencias en los metadatos de partición, ejecuta el comando desde el contexto de la base de datos:

    use cars
    db.runCommand( {
    checkMetadataConsistency: 1
    } )
  • Para verificar si hay inconsistencias en los metadatos de fragmentación de una colección, ejecute el comando con el nombre de la colección:

    use library
    db.runCommand( {
    checkMetadataConsistency: "authors",
    } )
Campo
Tipo
Descripción

checkMetadataConsistency

entero o cadena de texto

Especifica la colección a revisar.

1
Establece el comando para verificar todas las colecciones en la Base de Datos en busca de inconsistencias en los metadatos. Si se ejecuta en la base de datos admin, verifica todas las colecciones de todas las bases de datos.
"<collection>"
Establece la colección para verificar inconsistencias en los metadatos.

checkIndexes

booleano

Establece si el comando también verifica los índices en los metadatos de fragmentación.

Para obtener más información, consulte Verificar índices.

cursor

Documento

Configura el cursor de retorno.

cursor.batchSize

entero

Número máximo de resultados de incoherencias que se incluirán en cada lote.

dbMetadataLockMaxTimeMS

entero

Opcional. Tiempo máximo en milisegundos que se permite al comando esperar para adquirir un bloqueo de base de datos.

También puedes utilizar este campo junto con maxTimeMS. Por ejemplo, si se establece dbMetadataLockMaxTimeMs en 500 y maxTimeMs en 5000, la operación espera 500 milisegundos para intentar adquirir el bloqueo de la base de datos y espera un total de 5000 milisegundos para que la operación completa finalice.

El comando checkMetadataConsistency devuelve un cursor con un documento para cada inconsistencia encontrada en los metadatos de particionado. Para obtener más información, consulta Tipos de incoherencia.

El documento de devolución tiene los siguientes campos:

Campo
Tipo
Descripción

cursor

Documento

Cursor con los resultados de las comprobaciones de inconsistencias.

cursor.id

entero

Un entero de 64 bits indica el ID del cursor. Utilice el valor cursor.id con el comando getMore para recuperar el próximo lote de inconsistencias.

Si el cursor devuelve una ID de 0, indica que no hay más lotes de información.

cursor.ns

string

Se verificaron la base de datos y la colección para detectar inconsistencias.

cursor.firstBatch

arreglo

Resultados de las comprobaciones de coherencia de metadatos.

ok

booleano

Indica si el comando fue exitoso.

El comando checkMetadataConsistency devuelve resultados agrupados. Para personalizar el tamaño del lote, utilice la opción batchSize:

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

Si el campo cursor.id es mayor que 0, puedes usar el comando getMore para recuperar el siguiente agrupar de resultados.

El comando checkMetadataConsistency no verifica los índices por defecto. Para verificar la coherencia de metadatos e índices, utiliza la opción checkIndexes:

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

Utilice para ejecutar runCommand() el checkMetadataConsistency comando:

db.runCommand( { checkMetadataConsistency: 1 } )

Ejemplo de salida:

{
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
}

Volver

equilibradorStop

En esta página