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

Inicio rápido de Mongosync

Mongosync replica datos y guardados de un clúster a otro hasta que la sincronización está finalizado. Puedes utilizar esta herramienta para realizar migraciones de datos únicas entre clústeres de MongoDB con un tiempo de inactividad mínimo.

Para más información sobre mongosync y el comportamiento del clúster de destino durante la ejecución, consulta Consideraciones principales de sincronización.

El binario mongosync es el proceso principal que se utiliza en Mongosync.

  • Cada clúster puede ser un set de réplicas o un clúster particionado. Si alguno es un clúster particionado, consulta las limitaciones del clúster particionado para mongosync.

  • No se requiere que los clústeres tengan el mismo número de particiones.

  • El clúster de destino debe tener la misma versión o estar hasta dos versiones por delante del clúster de origen. La versión del parche no es importante, siempre que cumpla con los requisitos mínimos de la versión del parche.

  • El clúster de origen puede permanecer activo hasta el commit porque mongosync sincroniza las escrituras en el clúster de origen durante la migración hasta que se realiza la confirmación.

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.

Sigue las instrucciones a continuación para configurar Mongosync, conectar tus clústeres y sincronizar tus datos.

1

Si ya tienes un clúster de MongoDB, autogestionado o alojado en MongoDB Atlas, utiliza ese clúster como el clúster de origen. Si no tienes un clúster para trabajar, deberás crear uno.

Este inicio rápido funciona cuando tanto el clúster de destino como el clúster de origen son sets de réplicas.

Para sincronizar desde un set de réplicas a un clúster particionado, consulta Sincronizar un set de réplicas con un clúster particionado. Para sincronizar entre clústeres particionados, consulte Sincronizar clústeres particionados.

Puedes migrar entre clústeres en la misma o en diferentes versiones de MongoDB. Para obtener más información sobre la compatibilidad de versiones del servidor de MongoDB o migraciones entre versiones, consulta Compatibilidad de Versiones del Servidor MongoDB.

El número de nodos en el set de réplicas de destino no tiene que ser igual al número de nodos en el set de réplicas de origen.

IMPORTANTE:

El clúster de destino debe disponer de suficiente almacenamiento en disco para albergar el tamaño lógico de los datos que se migran y las entradas de destino de oplog desde la sincronización inicial. Por ejemplo, para migrar 10 GB de datos, el clúster de destino debe tener al menos 10 GB disponibles para los datos y otros 10 GB para las entradas de oplog de inserción de la sincronización inicial.

Para usar la verificación integrada, debes tener un oplog más grande en el destino. Si activas el verificador incorporado y reduces el tamaño del oplog de destino, es posible que el verificador incorporado no pueda mantenerse al día, lo que puede causar que mongosync genere un error.

Si necesitas reducir la sobrecarga de los registros del destino del oplog y el verificador incorporado está desactivado, puedes:

  • Utilice la configuración oplogSizeMB para reducir el tamaño del oplog del clúster de destino.

  • Utilice la oplogMinRetentionHours configuración para reducir o remover el período mínimo de retención del oplog en el clúster de destino.

Si tus clústeres son autogestionados, deben ser clústeres de MongoDB Enterprise. Mongosync solo es compatible con MongoDB Community Edition en un número limitado de casos. Para obtener más información sobre el uso de Mongosync con MongoDB Community Edition, ponte en contacto con un representante de ventas de MongoDB.

Crear un clúster está fuera del alcance de esta guía. Si necesita ayuda, consulte la documentación para crear un clúster de Atlas o para crear un clúster autogestionado.

Importante

No elegir Latest Version With Auto UpgradesEsta opción actualiza automáticamente el clúster a la última versión menor disponible. Algunas versiones menores, como la versión 8.2 de MongoDB, pueden no ser compatibles con la Migración en vivo ni con Mongosync. Al actualizar, elija una versión principal para garantizar la compatibilidad con la Migración en vivo y Mongosync.

2

Si cualquiera de los clústeres está alojado en Atlas, o si cualquiera de ellos requiere autenticación, debes crear un usuario de base de datos que tenga permisos en ambos clústeres.

El usuario de origen debe tener los siguientes roles:

Además, el usuario de origen debe poder:

Si el clúster de origen está alojado en Atlas, el usuario debe tener el rol de admin de Atlas. El usuario también debe poder leer el flujo de cambios para el clúster.

Si el clúster de destino está alojado en Atlas, el usuario debe tener el rol de administrador de Atlas.

3

mongosync es la herramienta que conecta los clústeres de origen y destino. Puedes alojar mongosync en tu propio hardware, mongosync no tiene que ejecutarse en el hardware que aloja tus clústeres MongodDB.

Para instalar mongosync:

  1. Localiza un servidor host para el ejecutable mongosync que tenga conectividad de red con tus clústeres de origen y destino.

  2. Ir al Centro de descargas de MongoDB.

  3. Descargar el paquete mongosync para tu sistema host.

  4. Desempaqueta el paquete mongosync. El ejecutable mongosync está en el directorio bin.

Para obtener instrucciones de instalación específicas del sistema operativo, consulta Instalación.

1

Una cadena de conexión contiene los detalles de red y de autenticación que mongosync necesita para conectarse a los clústeres de origen y destino.

Determine el nombre de host o la dirección IP y el puerto de sus clústeres de origen y destino. Usará esta información y los datos de autenticación de usuario para construir las cadenas de conexión.

El esquema estándar de conexión URI tiene la forma:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

Tus cadenas de conexión serán similares a:

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

Para obtener más información, consulte Conexión mongosync.

2

mongosync debe crear una conexión inicial con los clústeres de origen y destino antes de poder comenzar a sincronizar los datos. Para crear la conexión inicial, emite el siguiente comando con tus cadenas de conexión en una sola línea (el comando se ha reformateado aquí para mayor claridad):

./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"
  • Cuando mongosync se conecta por primera vez a los clústeres de origen y destino, se encuentra en el estado IDLE.

  • mongosync no sincroniza datos hasta que reciba el comando start.

  • Designa los clústeres de origen y de destino con el comando iniciar. "cluster0" y "cluster1" son solo etiquetas; ambos clústeres pueden ser cluster0 o cluster1.

El endpoint de inicio inicia la sincronización de datos. Para comenzar la sincronización, use curl o un programa similar para enviar la solicitud de inicio:

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

Si la solicitud de inicio es exitosa, mongosync devuelve { "success": true } y comienza a sincronizar los datos existentes en el clúster de origen con el clúster de destino. En este punto, mongosync entra en el estado RUNNING y aplica las siguientes escrituras del clúster de origen al clúster de destino.

Para consultar el estado de la sincronización, llama al endpoint de progreso:

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

Si la respuesta de progress incluye el campo canCommit: true, puedes llamar al endpoint de /commit. Consulta Finalizar proceso de cambio.

La interfaz de comando para mongosync es un servidor HTTP que publica una API HTTP. Para controlar mongosync, utiliza los endpoints de la API. La documentación de la API proporciona detalles sobre el uso de los siguientes endpoints:

Endpoint
Descripción

Inicia la sincronización entre un clúster de origen y un clúster de destino.

Devuelve el estado del proceso de sincronización.

Pausa la operación de sincronización actual.

Reanuda una sesión de sincronización pausada basándose en los datos almacenados en el clúster de destino.

Se confirma la operación de sincronización en el clúster de destino.

Revierte la dirección de una operación de sincronización confirmada.

Puedes finalizar una migración y transferir la carga de trabajo de tu aplicación del clúster de origen al clúster de destino usando el proceso de migración numeral (mongosync).

Para obtener más información, consulta Finalizar el proceso de trasvase.

mongosync almacena su metadatos en una base de datos o en varias bases de datos durante la migración. Las bases de datos de metadatos pueden llamarse de cualquiera de las siguientes maneras:

  • mongosync_reserved_for_internal_use

  • Cualquier cosa que comience con mongosync_internal_

  • Cualquier cosa que comience con mongosync_reserved_for_verification_

Debes descartar todas las bases de datos de metadatos después de una migración exitosa. Después de eliminar los metadatos, no es posible revertir la migración.

  • El puerto por defecto para la API HTTP es 27182. Usa la opción --port con mongosync para configurar otro puerto.

  • mongosync puedes intercambiar los clústeres de origen y destino para habilitar la sincronización inversa.

    Para obtener más información, consulta el reverse endpoint.

  • El usuario especificado en la cadena de conexión mongosync debe tener los permisos requeridos en los clústeres de origen y destino. Los permisos varían dependiendo del entorno y si deseas modificar la configuración de bloqueo de escritura o utilizar la sincronización inversa.

    para determinar los permisos de usuario correctos para su caso de uso, consulte permisos de usuario.

  • Es posible que debas incrementar el descriptor de archivos ulimits en el host que ejecuta mongosync. Esto se aplica a cualquier sistema similar a UNIX, pero macOS en particular tiene valores por defecto bajos. Consulta Configuraciones UNIX ulimit.

  • Para estimar el tamaño de oplog necesario para la sincronización inicial, consulta Dimensionamiento de oplog.

Volver

Overview

En esta página