Docs Menu
Docs Home
/ /

checkMetadataConsistency (comando de base de datos)

checkMetadataConsistency

Realiza una serie de comprobaciones de consistencia en los metadatos de fragmentación de un clúster, una base de datos o una colección. El comando devuelve un cursor con todos los metadatos o un lote de ellos. Se encontraron resultados inconsistentes.

Tip

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

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 operaciones de mantenimiento importantes, como actualizaciones y degradaciones, para verificar el estado del catálogo.

De forma predeterminada, el comando no comprueba la coherencia de los índices entre los fragmentos. Para comprobarlos, configure 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 se puede ejecutar cuando se conecta a mongos. mongod no admite 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 verificar si hay inconsistencias en los metadatos de fragmentación de la base de datos, ejecute 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 comprobar si hay inconsistencias en los metadatos en todas las colecciones de la base de datos. Si se ejecuta en la base de datos admin, comprueba 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 Comprobar índices.

cursor

Documento

Configura el cursor de retorno.

cursor.batchSize

entero

Número máximo de resultados de inconsistencia a incluir 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 puede usar este campo con. Por maxTimeMS ejemplo,dbMetadataLockMaxTimeMs si 500 establece maxTimeMs en y 5000 en, 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 finalice toda la operación.

El checkMetadataConsistency comando devuelve un cursor con un documento por cada inconsistencia detectada en los metadatos de fragmentación. Para obtener más información, consulte Tipos de inconsistencia.

El documento de devolución tiene los siguientes campos:

Campo
Tipo
Descripción

cursor

Documento

Cursor con los resultados de las comprobaciones de inconsistencia.

cursor.id

entero

Un 64entero de bits indica el ID del cursor. Use el cursor.id valor con el getMore comando para recuperar el siguiente lote de inconsistencias.

Si el cursor devuelve un 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 cursor.id campo es mayor 0 que, puede usarlo con el comando para recuperar el siguiente lote de getMore 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