mongosync. Ver el
documentación actual para obtener orientación actualizada sobre mongosync e instrucciones sobre cómo actualizar a la última versión.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 habilita el verificador de forma predeterminada en clústeres fragmentados.
Nota
mongosync Las lecturas se realizan con la preferencia de lectura, por lo que se conserva el orden de los campos del documento desde el nodo principal del clúster de origen. El verificador integrado también verifica los documentos según el nodo principal del clúster de origen, pero en un momento distinto al de primary mongosync la lectura de. Por ello, en casos excepcionales, las discrepancias en el orden de los campos del documento entre los nodos del clúster de origen pueden provocar que el verificador integrado no pueda realizar la migración, incluso si mongosync copió los documentos correctamente.
Acerca de esta tarea
Compatibilidad
El verificador integrado no está disponible en mongosync 1.8 y anteriores.
Para conocer métodos de verificación alternativos, consulte Verificar transferencia de datos.
Limitaciones
El verificador integrado tiene las siguientes limitaciones:
mongosyncAlmacena el estado del verificador en memoria, lo que puede generar una sobrecarga de memoria significativa. Para ejecutar el verificador,mongosyncrequiere aproximadamente 10 GB de memoria, más 500 MB adicionales por cada 1 millones de documentos.El verificador no se puede reanudar. Si un usuario detiene o pausa la sincronización y luego reinicia
mongosyncpor cualquier motivo, el proceso de verificación se reinicia desde el principio. Esto puede provocar que la verificación se retrase considerablemente con respecto a la migración.Si inicia la sincronización con la verificación habilitada y
buildIndexesconfigurado ennever, la migración fallará simongosyncencuentra una colección TTL en el clúster de origen. Esto puede ocurrir después de llamar al punto de conexión/starto mucho más tarde, por ejemplo, cuando un usuario crea un índice TTL en el clúster de origen durante una migración en curso.Para sincronizar colecciones TTL sin crear índices en el clúster de destino, debe iniciar la sincronización con el verificador deshabilitado.
Si realiza una actualización en vivo desde cualquier versión anterior a 1.9.0,
mongosyncdeshabilita la verificación incorporada.
Comprobaciones de verificación no admitidas
El verificador no comprueba los siguientes espacios de nombres:
Colecciones limitadas
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
Vistas
El verificador no revisa las siguientes funcionalidades de colección:
Metadatos de la colección
Indexes
Para verificar los datos y metadatos anteriores, cree comprobaciones adicionales para estas colecciones y sus características. Para obtener más información, consulte Verificar la transferencia de datos.
Nota
A partir de la 1.10 versión, el verificador busca inconsistencias en los datos de un evento DDL ocurrido en el clúster de origen anterior a la 6.0 durante la migración. Esto se debe a que las migraciones anteriores a la6.0 no admiten eventos DDL.
Para obtener más información, consulte 6.0 Limitaciones de migración anteriores a.
Pasos
Inicializar mongosync
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"
Examinar el progreso
Para examinar el estado de la sincronización, utilice el punto final /progress:
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" }, "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 obtener información sobre el estado del verificador incorporado.
Comportamiento
Comprobaciones de verificación
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 detecta errores, la migración falla con un error. Si el verificador no encuentra errores, el /progress punto final canWrite: true devuelve. Para obtener más información sobre el canWrite campo, consulte canWrite y COMMITTED.
Comuníquese con el soporte técnico para investigar problemas de verificación.
Requisitos de memoria
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 punto final /start devuelve un error. En este caso, para usar mongosync con el verificador, primero debe 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.