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, consulte Consideraciones de sincronización intermedia.

El binario mongosync es el proceso principal utilizado 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 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 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.

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

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

Importante

No elijas Latest Version With Auto UpgradesEsta opción actualiza automáticamente su clúster a la última versión menor. Algunas versiones menores, como la versión de MongoDB,8.2 podrían no ser compatibles con Live Migration ni Mongosync. Al actualizar, elija una versión principal para garantizar la compatibilidad con Live Migration 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. Busque un servidor host para el ejecutable mongosync que tenga conectividad de red con sus clústeres de origen y destino.

  2. Ir al Centro de descargas de MongoDB.

  3. Descargue el paquete mongosync para su 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. 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 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 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 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, 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 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