mongosync no son compatibles ni han sido probados para su uso con implementaciones de MongoDB no genuinas. Aunque las herramientas pueden funcionar en estas implementaciones, no se ofrecen garantías de compatibilidad.La El binario mongosync es el proceso principal utilizado en Mongosync. mongosync migra datos de un clúster de origen a un clúster de destino.
mongosync replica datos y escrituras de un clúster a otro hasta que la sincronización esté finalizado. Puedes utilizar esta herramienta para realizar migraciones de datos puntuales entre clústeres de MongoDB con un tiempo de inactividad mínimo.
Para obtener más información sobre mongosync y el comportamiento del clúster de destino durante la ejecución, consulta Consideraciones sobre la sincronización media.
Importante
Hasta que se haya llamado a commit en mongosync y canWrite devuelva true correctamente, las colecciones migradas en el clúster de destino no se pueden usar para aceptar tráfico de lectura o guardado de aplicaciones. No se debe utilizar mongosync para mantener clústeres secundarios para recuperación ante desastres, análisis u otros casos de uso similares.
mongosync rastrea sus acciones actuales a través de estados. mongosync entra en diferentes estados dependiendo de las solicitudes que recibe. El estado actual mongosync determina en qué operaciones API se pueden ejecutar.
Nota
La mayoría de las transiciones de estados ocurren como resultado de una llamada a la API. Las excepciones son:
La transición de
COMMITTINGaCOMMITTED. Para obtener más información, consulte Finalización de la Sincronización.La transición de
REVERSINGaRUNNING. Para obtener más información, consulte Inversión de sincronización.
Para ver el estado actual de mongosync, usa el endpoint /progress.
El siguiente diagrama ilustra la relación entre los estados de mongosync y las operaciones de la API:
La página de Preguntas Frecuentes (FAQ) aborda las preguntas que los usuarios han formulado sobre mongosync.
Detalles
Conecta clústeres de origen y destino
Debe crear una conexión inicial entre los clústeres de origen y destino antes de que mongosync pueda comenzar a sincronizar datos. Para más información, consulta Conexión mongosync.
Cuando mongosync se conecta a los clusters de origen y destino, el proceso de sincronización entra en el estado IDLE.
Iniciar sincronizar
Para iniciar el proceso de sincronización, llama al endpoint start.
El endpoint start inicia el estado RUNNING, que es cuando mongosync sincroniza datos desde el clúster de origen al clúster de destino. Si realizas guardados posteriores en el clúster de origen, mongosync aplica las operaciones al clúster de destino.
Para cada colección de origen que se sincroniza, mongosync crea una colección correspondiente en el destino.
mongosync modifica temporalmente algunas de las características de la colección replicada en el clúster de destino. Esto cambia estas características del clúster de destino de vuelta a las características del clúster de origen durante el estado COMMIT. Para más información, consulta Cambios en las características de la colección.
El estado RUNNING incluye dos fases:
Copia de la colección
Durante la fase de copia de la colección, mongosync ejecuta la transferencia inicial de datos del clúster de origen al clúster de destino. mongosync realiza esta transferencia de datos al dividir las colecciones de origen en particiones y copiar las partes a las colecciones de destino correspondientes.
Aplicación de eventos de cambio
La fase de la aplicación del evento de cambio (CEA) comienza después de que finaliza la fase de copia de la colección.
Durante la fase del CEA, mongosync realiza cambios continuos en el clúster de destino a medida que escribe en el clúster de origen.
Para realizar actualizaciones continuas en el clúster de destino, mongosync abre un flujo de cambios en el clúster de origen y aplica los eventos de cambio que recibe al clúster de destino.
Cuando comienza la fase de CEA, mongosync aplica los eventos de cambio que se reciben durante la fase de copia de colección antes de procesar los eventos que se reciben durante la fase de CEA.
Pausar sincronizar
Para pausar el proceso de sincronización y entrar en el estado PAUSADO, llama al endpoint pausar.
Para reanudar un proceso de sincronización pausado y devolver mongosync al estado RUNNING, llama al endpoint de reanudar.
Finalizar sincronización
Para finalizar la sincronización entre los clústeres de origen y destino, llame al endpoint de confirmación.
Nota
Debes bloquear los guardados en el clúster de origen antes de comenzar el proceso de confirmación.
Si anteriormente configuraste enableUserWriteBlocking como "sourceAndDestination" al usar el endpoint start, mongosync bloquea automáticamente las operaciones de guardar en el clúster de origen cuando usas el endpoint commit.
Si no has configurado enableUserWriteBlocking en "sourceAndDestination", ejecuta setUserWriteBlockMode en el clúster de origen para bloquear escrituras.
El extremo commit inicia el estado COMMITTING, que es cuando mongosync deja de migrar datos entre los clústeres de origen y destino.
Cuando comienza el estado COMMITTING, mongosync recupera la marca de tiempo de la confirmación, que es la hora de la última operación en el clúster de origen.
Si no hay errores, mongosync envía un mensaje de éxito y sale de CEA procesando eventos hasta la marca de tiempo del commit. mongosync también restaura las características de la colección que mongosync altera temporalmente durante la sincronización.
Cuando se completa el proceso anterior, mongosync entra en el estado CONFIRMADO. El estado COMMITTED indica que el proceso de corte está terminado.
Sincronización inversa
Para invertir la dirección de una operación de sincronización confirmada, llama al punto final reverse.
El punto final reverse inicia el estado REVERSING. mongosync intercambia los clústeres de origen y destino y reanuda la aplicación de eventos de cambio.
Si la sincronización inversa es exitosa, mongosync entra en el estado RUNNING. La sincronización continúa en la dirección inversa desde la tarea de sincronización original.
Obtén más información
Para obtener más información sobre mongosync, consulta: