mongosync. Ver el
documentación actual para obtener orientación actualizada sobre mongosync e instrucciones sobre cómo actualizar a la última versión.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.
Importante
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 secuencias de comandos para comprobaciones adicionales de estas colecciones y sus características. Para obtener más información, consulte Verificar transferencia de datos.
Nuevo en la versión 1.9.
Acerca de esta tarea
Compatibilidad
El verificador integrado no está disponible en mongosync 1.8 y anteriores.
Para métodos de verificación alternativos, ve Verificar transferencia de datos.
Limitaciones
El verificador integrado tiene las siguientes limitaciones:
El verificador no admite clústeres fragmentados. Si la migración incluye un clúster fragmentado,
mongosyncdeshabilita el verificador.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.El punto final /reverse desactiva el verificador. Permanece desactivado tras llamadas adicionales al
/reversepunto final.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.
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"
Iniciar la sincronización
Para comenzar a sincronizar datos desde el clúster de origen al destino, utilice el punto final /start.
curl localhost:27182/api/v1/start -XPOST \ --data ' { "source": "cluster0", "destination": "cluster1", } '
Ejemplo de salida:
{"success":true}
Tenga en cuenta que el verificador está habilitado de forma predeterminada para las migraciones de conjuntos de réplicas.
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.