Docs Menu
Docs Home
/ /

Inicio rápido de Mongosync

Mongosync replica datos y escribe de un clúster a otro hasta que se completa la sincronización. Finalizado. Puede usar esta herramienta para realizar migraciones de datos únicas 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, consulte Consideraciones de sincronización intermedia.

El binario mongosync es el proceso principal utilizado en Mongosync.

  • Cada clúster puede ser un conjunto de réplicas o un clúster fragmentado. Si alguno de ellos es un clúster fragmentado, consulte las limitaciones de los clústeres fragmentados mongosyncpara.

  • No es necesario que los clústeres fragmentados tengan la misma cantidad de fragmentos.

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

  • El clúster de origen puede permanecer activo hasta la confirmación porque mongosync sincroniza las escrituras en el clúster de origen mientras dura la migración hasta que se llama a 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 tiene un clúster MongoDB, ya sea autoadministrado o alojado en MongoDB Atlas: usa ese clúster como clúster de origen. Si no tienes un clúster con el que trabajar, tendrás que crear uno.

Esta guía de inicio rápido funciona cuando el clúster de destino y el clúster de origen son conjuntos de réplicas.

Para sincronizar desde un conjunto de réplicas a un clúster fragmentado, consulte Sincronizar un conjunto de réplicas con un clúster fragmentado. Para sincronizar entre clústeres fragmentados, consulte Sincronizar clústeres fragmentados.

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.

La cantidad de nodos en el conjunto de réplicas de destino no tiene que ser igual a la cantidad de nodos en el conjunto de réplicas de origen.

IMPORTANTE:

El clúster de destino debe tener suficiente almacenamiento en disco para acomodar el tamaño de los datos lógicos que se migrarán y las entradas del registro de operaciones de destino de 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 del registro de operaciones de inserción de la sincronización inicial.

Para usar la verificación integrada, debe tener un registro de operaciones más grande en el destino. Si habilita el verificador integrado y reduce el tamaño del registro de operaciones de destino, es posible que el verificador integrado no pueda mantener el ritmo, lo que provocará mongosync el error.

Si necesita reducir la sobrecarga de las entradas del registro de operaciones de destino y el verificador incorporado está deshabilitado, puede:

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

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

Si sus 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, contacte con un representante de ventas de MongoDB.

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

2

Si alguno de los clústeres está alojado en Atlas, o si alguno de ellos requiere autenticación, debe 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 administrador de Atlas. También debe poder leer el flujo de cambios del 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. Puede alojar mongosync en su propio hardware; mongosync no tiene que ejecutarse en el hardware que aloja sus clústeres de MongodDB.

Para instalar mongosync:

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

  2. Vaya al Centro de descarga de MongoDB.

  3. Descargue el paquete mongosync para su sistema host.

  4. Descomprima el paquete mongosync. El ejecutable mongosync se encuentra en el directorio bin.

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

1

Una cadena de conexión contiene los detalles de red y 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. Utilizará esta información y los datos de autenticación del 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]]

Sus cadenas de conexión se parecerán 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 detalles, consulte mongosyncConexión.

2

mongosync Debe crear una conexión inicial con los clústeres de origen y destino antes de poder empezar a sincronizar datos. Para crear la conexión inicial, ejecute el siguiente comando con las cadenas de conexión en una sola línea (el comando se ha formateado 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 estado INACTIVO.

  • mongosync no sincroniza los datos hasta que recibe el comando de inicio.

  • 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 punto final de inicio inicia la sincronización de datos. Para iniciar la sincronización, utilice curl o un programa similar para emitir la solicitud de inicio:

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

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

Para comprobar el estado de la sincronización, llame al punto final de progreso:

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

Si la progress respuesta incluye el campo,canCommit: true puede llamar al punto /commit final.Consulte Finalizar el proceso de transición.

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

Endpoint
Descripción

Inicia la sincronización entre un clúster de origen y uno 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 en pausa según los datos almacenados en el clúster de destino.

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

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

Puede finalizar una migración y transferir la carga de trabajo de su aplicación desde el clúster de origen al de destino mediante el proceso de transferencia mongosync.

Para obtener más información,consulte Finalizar proceso de transferencia.

mongosync Almacena sus metadatos en una o varias bases de datos durante la migración. Las bases de datos de metadatos pueden tener cualquiera de los siguientes nombres:

  • mongosync_reserved_for_internal_use

  • Cualquier cosa que comience con mongosync_internal_

  • Cualquier cosa que comience con mongosync_reserved_for_verification_

Debe eliminar cualquier base de datos de metadatos después de una migración exitosa. Una vez eliminados los metadatos, no es posible revertir la migración.

  • El puerto predeterminado para la API HTTP es.27182 Utilice la --port opción 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, consulte el punto reverse final.

  • El usuario especificado en la cadena de conexión mongosync debe tener los permisos necesarios en los clústeres de origen y destino. Los permisos varían según el entorno y si desea modificar la configuración de bloqueo de escritura o usar la sincronización inversa.

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

  • Es posible que deba aumentar el descriptor de archivo ulimits en el host que mongosync ejecuta. Esto aplica a cualquier sistema tipo UNIX, pero macOS, en particular, tiene valores predeterminados bajos. Consulte la configuración de ulimit en UNIX.

  • Para estimar el tamaño de oplog necesario para la sincronización inicial, consulte Dimensionamiento del registro de operaciones.

Volver

Overview

En esta página