La utilidad mongosync crea una conexión entre clústeres de MongoDB. mongosync puede conectarse a cualquiera de los siguientes clústeres:
MongoDB Atlas clústeres alojados
un clúster autogestionado y un clúster alojado en Atlas
Esta página proporciona instrucciones para conectar clústeres autogestionados utilizando MongoDB Mongosync.
Nota
Para obtener el mejor rendimiento, actualiza tus clústeres de origen y destino a la versión más reciente del parche de MongoDB Server antes de la migración. Para obtener más información, consulte Actualiza a la última versión autogestionado Patch de MongoDB.
Cadenas de conexión
mongosync utiliza una cadena de conexión URI de MongoDB para conectar clústeres:
El esquema de conexión SRV tiene la forma:
mongodb+srv://[username:password@][host.domain.TLD][:port][/defaultauthdb][?options] El esquema estándar de conexión URI tiene la forma:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
Specify the hostnames of the mongod instances the same way that they are listed in your replica set configuration.
For sharded clusters, specify the hostnames of the mongos instances instead of the mongod instances.
Nota
mongosync does not require the replicaSet option.
mongosync requires the primary read preference to connect to the source and destination clusters. For more information, see Read Preference Options.
Autenticación
Si el clúster de origen o de destino requiere autenticación, se debe proporcionar las credenciales correctas al llamar a mongosync.
Roles
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.
Los permisos autogestionados son:
Tipo de sincronización | Permisos necesarios para la fuente | Permisos de destino requeridos |
|---|---|---|
predeterminado | ||
Bloqueo dual de guardado | ||
Reversión | ||
Múltiples reversiones |
Para obtener detalles sobre las funciones del servidor, consulta: Control de Acceso Basado en Roles en Despliegues Autogestionados.
To update user permissions, see: grantRolesToUser.
Comportamiento
Alojamiento
The mongosync utility can be hosted on its own hardware close to either the source or destination cluster. It does not have to be hosted on the same server as one of the mongod or mongos instances in the cluster. This flexibility allows you to push, or pull, data to the destination cluster with minimal impact on the mongod or mongos instances running there.
Estado inicial
Cuando mongosync se conecta, está en el estado IDLE. Debe emitir el comando de inicio para comenzar la sincronización.
Ejemplo
Recolectar información sobre la conexión
El clúster de origen, cluster0, está alojado en los siguientes servidores y puertos:
clusterOne01.fancyCorp.com:20020
clusterOne02.fancyCorp.com:20020
clusterOne03.fancyCorp.com:20020
El clúster de destino, cluster1, está alojado en los siguientes servidores y puertos:
clusterTwo01.fancyCorp.com:20020
clusterTwo02.fancyCorp.com:20020
clusterTwo03.fancyCorp.com:20020
Hay un usuario administrativo, clusterAdmin, configurado en cada clúster con la contraseña superSecret.
Conectar los clústeres de Origen y Destino con mongosync
El formato genérico de cadena de conexión es:
mongodb://<user>:<password>@<ip-address>:<port>,<ip-address>:<port>,<ip-address>:<port>
Utiliza la información de conexión que recopilaste para crear las cadenas de conexión para cluster0 y cluster1:
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
El siguiente diseño del comando mongosync está modificado para poder visualizarlo. Para conectar cluster0 a cluster1 con mongosync, introduce el siguiente comando en una sola línea:
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"
You can also use mongodb+srv connection strings with mongosync. You do not need to add the tls=true option to a mongodb+srv connection string. For example:
mongosync \ --cluster0 "mongodb+srv://clusterAdmin:superSecret@clusterOne01.fancyCorp.com/" \ --cluster1 "mongodb+srv://clusterAdmin:superSecret@clusterTwo01.fancyCorp.com/"
Para obtener más detalles sobre las cadenas de conexión mongodb+srv, consulta Formato de conexión SRV.