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
/ /

Verificar con el verificador integrado

Nuevo en la versión 1.9.

mongosync incluye un verificador incorporado para realizar una serie de comprobaciones en el clúster de destino para verificar la sincronización de las colecciones compatibles. mongosync habilita el verificador de forma predeterminada en los clústeres de conjuntos de réplicas.

A partir de la versión 1.10, mongosync activa el verificador por defecto en clústeres particionados.

Nota

mongosync lee usando primary preferencia de lectura, así que conserva el orden de los campos de documentos desde el nodo primario del clúster de origen. El verificador integrado también revisa los documentos en función del nodo primario del clúster de origen, pero en un momento diferente al de cuando mongosync los lee. Por esta razón, en casos poco frecuentes, las discrepancias en el orden de los campos de documentos entre los nodos del clúster de origen pueden causar que el verificador incrustado falle en la migración, aunque mongosync haya copiado los documentos correctamente.

El verificador integrado no está disponible en mongosync 1.8 y anteriores.

Para métodos alternativos de verificación, consulta Verificar transferencia de datos.

El verificador integrado tiene las siguientes limitaciones:

  • mongosync almacena el estado del verificador en la memoria, lo que puede causar una sobrecarga significativa de memoria. Para ejecutar el verificador, mongosync requiere aproximadamente 10 GB de memoria, además de 500 MB adicionales por cada 1 millones de documentos.

  • No se puede reanudar el verificador. Si un usuario detiene o pausa la sincroniza y luego inicia mongosync nuevamente por cualquier motivo, el proceso de verificación se reinicia desde el principio. Esto puede hacer que la verificación quede sustancialmente por detrás de la migración.

  • Al migrar de un set de réplicas a un clúster, no puedes renombrar las colecciones de origen que especificas en las opciones de particionado. Si renombras una colección incluida en las opciones de particionado durante la fase de CEA, el verificador informa un desajuste de particionado.

  • Si inicias la sincronización con la verificación habilitada y buildIndexes configurado en never, la migración fallará si mongosync encuentra una colección TTL en el clúster de origen. Esto puede suceder después de que llames al endpoint /start o mucho más tarde, como cuando un usuario crea un índice TTL en el clúster de origen mientras una migración está en curso.

    Para sincronizar colecciones TTL sin crear índices en el clúster de destino, debe iniciar la sincronización con el verificador deshabilitado.

El verificador no comprueba los siguientes espacios de nombres:

  • Colecciones con tamaño fijo

  • Colecciones con índices TTL, incluidos los índices TTL que se agregan o eliminan durante la migración

  • Colecciones que no utilizan la intercalación predeterminada

Para verificar colecciones no admitidas, añada código de script adicional para examinar las colecciones. Para obtener más información, consulta Verificar transferencia de datos.

Nota

A partir de la versión 1.10, el verificador verifica las inconsistencias de datos de un evento DDL que ocurrió en el pre-6.0 clúster de origen durante la migración. Esto se debe a que antes de6.0 las migraciones no soportan eventos DDL.

Para obtener más información, consulta Limitaciones de la migración previa a6.0.

1

Inicializa el proceso de mongosync:

./bin/mongosync \
--logPath /var/log/mongosync \
--cluster0 "mongodb://clusterAdmin:superSecret@clusterOne01.fancyCorp.com:20020,clusterOne02.fancyCorp.com:20020,clusterOne03.fancyCorp.com:20020" \
--cluster1 "mongodb://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com:20020,clusterTwo02.fancyCorp.com:20020,clusterTwo03.fancyCorp.com:20020"
2

Para empezar a sincronizar datos desde el clúster de origen al destino, usa el /start endpoint.

curl localhost:27182/api/v1/start -XPOST \
--data ' {
"source": "cluster0",
"destination": "cluster1",
} '

Ejemplo de salida:

{"success":true}
3

Para comprobar el estado de la sincronización, utiliza el /progress endpoint:

curl localhost:27182/api/v1/progress -XGET

Ejemplo de salida:

{
"progress":
{
"state":"RUNNING",
"canCommit":true,
"canWrite":false,
"info":"change event application",
"lagTimeSeconds":0,
"collectionCopy":
{
"estimatedTotalBytes":694,
"estimatedCopiedBytes":694
},
"directionMapping":
{
"Source":"cluster0: localhost:27017",
"Destination":"cluster1: localhost:27018"
},
"source":
{
"pingLatencyMs":250
},
"destination":
{
"pingLatencyMs":-1
},
"verification":
{
"source":
{
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
},
"destination": {
"estimatedDocumentCount": 42,
"hashedDocumentCount": 42,
"lagTimeSeconds": 2,
"totalCollectionCount": 42,
"scannedCollectionCount": 10,
"phase": "stream hashing"
}
}
},
"success": true
}

Examine el campo de respuesta verification para información sobre el estado del verificador embebido.

El verificador integrado realiza una serie de comprobaciones en el clúster de destino. Comprueba todas las colecciones compatibles para confirmar que mongosync transfirió correctamente los documentos del clúster de origen al de destino.

Si el verificador encuentra errores, falla la migración con un error. Si el verificador no encuentra errores, el endpoint /progress devuelve canWrite: true. Para obtener más información sobre el campo canWrite, consulte puedeEscribir y COMMITTED.

A partir de la versión 1.15, el verificador incorporado examina los metadatos de la colección, los índices y las vistas. Si el verificador encuentra una discrepancia durante la verificación de metadatos, devuelve un error que contiene los tipos de discrepancia y una contabilidad de sus ocurrencias.

Por favor, contacte con soporte para investigar problemas de verificación.

La verificación requiere 10 GB de memoria más 500 MB adicionales por cada 1 millones de documentos en la migración.

Si la memoria disponible es insuficiente, el endpoint /start devuelve un error. Si esto ocurre, para usar mongosync con el verificador, primero debes aumentar la memoria del servidor y reanudar la migración.

Si aumentar la memoria del servidor no es una opción, reinicie mongosync con el verificador deshabilitado.

Volver

Verificación de transferencia de datos

En esta página