Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial, usará la extensión de migración de Azure Cosmos DB en Visual Studio Code para crear y administrar trabajos de migración desde una instancia local o en la nube de MongoDB a Azure Cosmos DB. Esta extensión proporciona una interfaz fácil de desarrolladores para realizar migraciones sin interrupciones del servicio. La extensión elimina la necesidad de infraestructura adicional y ofrece conectividad segura, uso sin costo y control pormenorizado sobre qué bases de datos y recopilaciones se van a migrar.
El objetivo de este artículo es usar el flujo de trabajo integrado de la extensión para simplificar los pasos de migración directamente dentro de Visual Studio Code. Este enfoque es ideal para escenarios en los que desea una experiencia simplificada y administrada con una complejidad mínima y una confiabilidad máxima.
Prerrequisitos
Una suscripción de Azure
- Si no tiene una suscripción de Azure, cree una cuenta free
Un clúster de DocumentDB de Azure existente
- Si no tiene un clúster, cree un nuevo clúster.
- Instale la extensión de migración de Azure DocumentDB en su equipo. Esto instala automáticamente su requisito previo, la extensión DocumentDB para Visual Studio Code.
Antes de iniciar la migración, prepare la cuenta de Azure DocumentDB y la instancia de MongoDB existente para la migración.
Instancia de MongoDB (origen)
- Completa la evaluación previa a la migración para determinar si hay incompatibilidades y advertencias entre tu instancia de origen y tu cuenta de destino.
- Agregue un usuario con
readAnyDatabasepermisos yclusterMonitor, a menos que ya exista uno. Esta credencial se usa al crear trabajos de migración en la extensión.
Azure DocumentDB (objetivo)
- Recopile las credenciales de Azure DocumentDB account.
- Asegúrese de que el usuario tenga permisos
createCollection,dropCollection,createIndex,insertylistCollections.
Permisos mínimos necesarios
Use los siguientes roles mínimos para crear y ejecutar trabajos de migración.
| Rol mínimo | Ámbito | Se aplica al modo de conectividad | propósito |
|---|---|---|---|
| Reader | Subscription | Público y privado | Enumera las suscripciones y los grupos de recursos. Necesario para cada trabajo de migración. |
| colaborador de Azure Database Migration Service | Grupo de recursos | Público y privado | Cree Azure Database Migration Service (DMS). No es necesario crear un nuevo DMS para cada migración. Un DMS por región es suficiente. |
| Colaborador | Subscription | Público y privado | Registre DMS en la suscripción. Se trata de una actividad única y se puede delegar a otro usuario. |
| Administrador de acceso de usuario | Red de área virtual | Exclusivamente privado | Asigne el rol de colaborador de red al principal de objeto DMS. Se trata de una actividad única por red virtual y se puede delegar a otro usuario. |
| Colaborador | Azure DocumentDB | Público y privado | Desencadene el trabajo de migración. |
Para obtener más información sobre el registro del proveedor, consulte Registrar el proveedor de recursos Microsoft.DataMigration en su suscripción.
Importante
La autenticación de Microsoft Entra ID no es admitida actualmente en los trabajos de migración. Use la autenticación nativa de DocumentDB.
Realización de la migración
Para obtener instrucciones de planeación sobre el ajuste de tamaño, la velocidad y la transición de la migración, consulte Procedimientos recomendados de migración.
Conexión al origen
- Abra la extensión DocumentDB para VS Code .
- Agregue el servidor de MongoDB que desea migrar a la lista Conexiones de base de datos de documentos .
- Seleccione Agregar nueva conexión.
- En la barra de navegación, seleccione Cadena de conexión.
- Pega la cadena de conexión:
mongodb://<YOUR_USERNAME>:<YOUR_PASSWORD>@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true&authMechanism=SCRAM-SHA-256 - En Conexiones de DocumentDB, seleccione la conexión y expándala para conectarse.
Invocar la extensión de migración
Puede invocar la extensión de migración desde las conexiones de DocumentDB.
Haga clic con el botón derecho en una conexión expandida (conectada).
Seleccione Migración de datos en el menú contextual.
En la paleta de comandos, seleccione Migration a Azure DocumentDB.
A continuación, seleccione Migrate a Azure DocumentDB.
Una guía paso a paso para la migración le guía a través del proceso.
Creación de un trabajo de migración
Un trabajo de migración se usa para migrar un grupo de colecciones del origen al destino Azure DocumentDB. El Asistente para crear trabajos de migración tiene seis pasos.
Paso 1: Crear trabajo
En este paso, proporcionará los detalles básicos del trabajo.
Nombre del trabajo: proporcione un nombre descriptivo para identificar el trabajo de migración.
Modo de migración: seleccione el modo de migración más adecuado para su caso de uso.
- La migración en línea copia los datos de recopilación, lo que garantiza que las actualizaciones también se replican durante el proceso. Este método es ventajoso con un tiempo de inactividad mínimo, lo que permite operaciones continuas para la continuidad empresarial. Use esta opción cuando las operaciones en curso sean cruciales y reducir el tiempo de inactividad sea una prioridad.
- La migración sin conexión captura una instantánea de la base de datos al principio, lo que ofrece un enfoque más sencillo y predecible. Funciona bien cuando la utilización de una copia estática de la base de datos es aceptable y las actualizaciones en tiempo real no son esenciales.
Importante
Para garantizar que las migraciones en línea se realicen correctamente desde MongoDB, ChangeStream debe estar habilitada en el servidor de MongoDB de origen. Sin ChangeStream, no se capturan las modificaciones realizadas en los datos después de la migración inicial. Por lo tanto, use el modo de migración en línea solo si ChangeStream está habilitado en el servidor de MongoDB de origen.
Conectividad: en función del mandato de seguridad y la configuración de red de su organización, elija entre Público y Privado.
- Use Public cuando los servidores de origen y de destino sean accesibles a través de Internet a través de direcciones IP públicas. Habilita la compatibilidad con los servicios que requieren accesibilidad externa.
- Use Private cuando los servidores de origen o de destino sean accesibles exclusivamente a través de direcciones IP privadas dentro de una red virtual. Mejora la seguridad eliminando la exposición a la red pública de Internet.
Seleccione Next (Siguiente) para continuar.
Paso 2: Seleccionar destino
En este paso, seleccionará una cuenta de Azure DocumentDB existente y proporcionará su cadena de conexión.
Seleccione la suscripción, el grupo de recursos y la cuenta de Azure DocumentDB desde las listas desplegables.
Proporcione el cadena de conexión a la cuenta de DocumentDB de Azure.
Asegúrese de que la dirección IP que aparece en la pantalla está permitida en el firewall de Azure DocumentDB.
Seleccione Next (Siguiente) para continuar.
Paso 3: Seleccionar Database Migration Service(DMS)
Azure Database Migration Service es un servicio que migra datos a y desde Azure plataformas de datos mediante la infraestructura en la nube para la transferencia de datos, en lugar de confiar en recursos locales. Elija una instancia de Azure Database Migration Service existente en la lista desplegable o seleccione Crear DMS para crear un nuevo servicio de migración.
Importante
Asegúrese de que el proveedor de recursos Microsoft.DataMigration está registrado en su suscripción. Solo tiene que hacerlo una vez por suscripción.
Seleccione Next (Siguiente) para continuar.
Paso 4: Configurar la conectividad
Esta pantalla depende del modo de conectividad elegido en el paso 1.
Conectividad pública
En la conectividad pública, el trabajo de migración se conecta al origen y al destino mediante la red pública de Internet. Para habilitar la comunicación, es necesario actualizar los firewalls de origen y de destino. Para habilitar la comunicación desde los servidores DMS, agregue las direcciones IP enumeradas en la pantalla a los firewalls de origen y destino. Para obtener más información sobre el modelo de red, consulte Conectividad pública. Para obtener instrucciones de configuración del firewall, consulte configurar el firewall del clúster de Azure DocumentDB.
Conectividad privada
En la conectividad privada, el trabajo de migración se ejecuta dentro de su red virtual. Para comunicarse de forma segura con sus redes virtuales, se utiliza el emparejamiento de red virtual. Para obtener más información sobre el modelo de red, consulte Conectividad privada.
La herramienta permite el emparejamiento con dos redes virtuales, una para el origen y la otra para el destino. En función de la configuración de red, seleccione la suscripción, el grupo de recursos y las redes virtuales en las listas desplegables.
En la sección Configuración de DMS , seleccione un intervalo CIDR que no entre en conflicto con las redes virtuales.
Ejecute los scripts de PowerShell proporcionados en la pantalla para habilitar la integración de red virtual.
Seleccione Next (Siguiente) para continuar.
Paso 5: Seleccionar colecciones
En este paso, seleccionará las colecciones que se incluirán en la tarea de migración. Seleccione en la lista de colecciones mediante las opciones de búsqueda proporcionadas. Las colecciones que ya existen en el destino se marcan automáticamente como Sí en la columna Existe en Destino.
Sugerencia
Asegúrese de seleccionar todas las colecciones que quiera incluir, ya que no se puede agregar la lista de recopilaciones una vez creado el trabajo de migración.
Seleccione Next (Siguiente) para continuar.
Paso 6: Confirmar e iniciar
Revise los detalles del trabajo de migración antes de seleccionar Iniciar migración. Si es necesario actualizar los detalles, use el botón Editar detalles .
Una vez creado correctamente el trabajo de migración, se le redirigirá automáticamente a la página Ver trabajos existentes .
Sugerencia
Las tareas de migración de datos se ejecutan en Azure Database Migration Service. Por lo tanto, no es necesario estar conectado a los entornos de origen y de destino durante la migración de datos. El estado se actualiza en el panel a intervalos frecuentes.
Supervisión de trabajos de migración existentes
Use la pestaña Ver trabajos existentes para supervisar el estado de migración de los trabajos inicializados. Los trabajos se muestran en función del DMS seleccionado. Use el botón Cambiar DMS para cambiar la selección.
El estado se actualiza automáticamente a intervalos frecuentes. Las tareas fuera de línea se completan automáticamente una vez que las instantáneas de la colección seleccionada se copian al destino. Sin embargo, las migraciones en línea deben reducirse manualmente.
Para ver el estado de la colección, seleccione una fila de la tabla.
Supervisión de migraciones en línea
Las migraciones en línea, a diferencia de las migraciones sin conexión, no se completan automáticamente. En su lugar, se ejecutan continuamente hasta que se finalizan manualmente seleccionando Transición.
Para completar la migración en línea, siga estos pasos en el orden indicado:
El botón Cutover está habilitado una vez completada la carga de datos inicial para todas las colecciones. En esta fase, el trabajo se encuentra en la fase de replicación, copiando continuamente las actualizaciones de la instancia de origen a la instancia de destino para mantenerlo up-to-date con los cambios más recientes.
Cuando esté listo para realizar la transición de migración, detenga todas las transacciones entrantes en las colecciones de origen que se van a migrar.
El intervalo de replicación muestra el intervalo de tiempo entre la última actualización y la hora actual.
Supervise los cambios de replicación en la tabla y espere hasta que se estabilice la métrica Cambios de replicación reproducidos. Una métrica estable Cambios de replicación reproducidos indica que todas las actualizaciones del origen se copian correctamente en el destino.
Seleccione Transición cuando la brecha de replicación sea mínima para todas las recopilaciones y la métrica Cambios de replicación reproducidos sea estable.
Valide manualmente que el recuento de filas sea el mismo entre las colecciones de origen y de destino.
Nota:
La realización de la operación de migración sin validar que el origen y el destino se sincronizan pueden provocar la pérdida de datos.
Escenarios de migración
La extensión de migración de DocumentDB de Azure admite varios entornos de origen, incluidas las instancias de MongoDB que se ejecutan en Azure, centros de datos locales y otros proveedores de nube. La extensión proporciona opciones de conectividad flexibles para adaptarse a diferentes configuraciones de red y requisitos de seguridad.
Entornos de origen admitidos
En la tabla siguiente se resumen los orígenes de migración admitidos:
| Entorno de origen | Description |
|---|---|
| Dentro de Azure | Instancias de MongoDB que se ejecutan en Azure Virtual Machines u otros servicios hospedados Azure |
| En las instalaciones | Servidores de MongoDB que se ejecutan en el centro de datos local o en la infraestructura privada |
| Otros proveedores de nube | Instancias de MongoDB hospedadas en otras plataformas en la nube |
Conectividad pública
En el modo de conectividad pública, el Azure Database Migration Service (DMS) se conecta a los servidores de origen y de destino a través de la red pública de Internet. DMS proporciona direcciones IP estáticas que se agregan a las listas de permitidos del firewall en los servidores de origen y de destino. DMS usa una red virtual pública compartida para todas las migraciones dentro de una región determinada. Aunque esta red virtual se comparte entre los clientes, cada trabajo de migración se ejecuta en su propio nodo de trabajo privado aislado para garantizar el aislamiento de nivel de trabajo.
Use la conectividad pública cuando:
- Los servidores de origen y destino son accesibles a través de direcciones IP públicas.
- Las directivas de seguridad de la organización permiten conexiones a través de la red pública de Internet.
- Necesita una configuración más sencilla sin configuración de red virtual.
Para habilitar la conectividad pública:
En el Asistente para la migración, seleccione Público como modo de conectividad.
Observe las direcciones IP estáticas que se muestran en el asistente.
Agregue estas direcciones IP a la lista de permitidos del firewall en el servidor mongoDB de origen.
Agregue estas direcciones IP al firewall de Azure DocumentDB.
Conectividad privada
En el modo de conectividad privada, DMS aprovisiona una red virtual privada dedicada para cada trabajo de migración y la empareja con las redes virtuales de origen y de destino. Esto significa que cada trabajo obtiene nodos de trabajo aislados y una red aislada, lo que garantiza que no haya ningún tráfico cruzado entre trabajos y que no existan rutas de acceso de red compartidas entre los clientes.
La extensión admite hasta dos redes virtuales:
- Red virtual de origen: la red virtual donde se puede acceder al servidor de MongoDB de origen.
- Target virtual network: la red virtual donde se puede acceder al clúster de Azure DocumentDB.
Use la conectividad privada cuando:
- Los servidores de origen o de destino no son accesibles a través de la red pública de Internet.
- La organización requiere que todo el tráfico fluya a través de redes privadas.
- Debe evitar la exposición pública a Internet.
Desde otros proveedores de nube o locales
Use las herramientas de VPN preferidas para configurar la conectividad de red entre Azure y el entorno de origen en otra nube o local.
Desde un punto de conexión privado en Azure
Configure puntos de conexión privados para las redes virtuales de origen y de destino.
Para habilitar la conectividad privada:
En el Asistente para la migración, seleccione Privado como modo de conectividad.
Seleccione la suscripción, el grupo de recursos y la red virtual para el entorno de origen.
Seleccione la suscripción, el grupo de recursos y la red virtual para el entorno de destino.
En la sección Configuración de DMS , seleccione un intervalo CIDR que no entre en conflicto con las redes virtuales existentes.
Ejecute los scripts de PowerShell proporcionados en el asistente para habilitar la integración y el emparejamiento de redes virtuales.
Importante
Al usar el acceso privado, una sola red virtual solo puede admitir un trabajo de migración activo a la vez. Para ejecutar varios trabajos simultáneos, use redes virtuales diferentes para cada trabajo.
Registre el proveedor de recursos Microsoft.DataMigration en su suscripción
Para asegurarse de que el proveedor de recursos Microsoft.DataMigration está registrado en su suscripción, puede seguir estos pasos:
portal de Azure
Vaya al portal de Azure y vaya a la suscripción.
En el menú de la izquierda, seleccione Proveedores de recursos en Configuración.
Busque Microsoft. DataMigration en el cuadro de búsqueda de la parte superior.
Si no está registrado, selecciónelo y seleccione el botón Registrar .
CLI de Azure
Abra el Azure Cloud Shell o el terminal local.
Para registrar el proveedor de recursos, ejecute el siguiente comando:
az provider register --namespace Microsoft.DataMigration
PowerShell
Abra el Azure Cloud Shell o powerShell local.
Para registrar el proveedor de recursos, ejecute el siguiente comando:
Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"
Preguntas más frecuentes
¿Por qué faltan vistas en el paso seleccionar la pantalla de recopilación cuando Azure DocumentDB admite vistas?
Azure DocumentDB admite la creación de nuevas vistas. Sin embargo, la extensión de migración no proporciona compatibilidad con la migración de vistas existentes.
Una vez finalizada la migración, siempre puede volver a crear las vistas.
¿Qué colecciones y bases de datos se omiten al migrar de MongoDB a Azure DocumentDB?
Las siguientes bases de datos y colecciones se consideran internas para MongoDB:
| Categoría | Description |
|---|---|
| Bases de datos | administrador, local, configuración del sistema |
| Colecciones | Cualquier colección con prefijo system. |
¿Los trabajos de migración se ejecutan localmente en mi máquina?
El Asistente para la migración en VS Code requiere conectividad de red desde la máquina local a los entornos de origen y de destino. Esta conectividad se usa para enumerar bases de datos y colecciones y para enviar el trabajo de migración. Una vez enviado el trabajo, puede cerrar VS Code o desconectar de los entornos de origen y de destino.
La migración de datos se ejecuta completamente mediante Azure Database Migration Service (DMS), un servicio hospedado Azure que administra todo el movimiento de datos. DMS no se basa en la máquina local ni en VS Code para la ejecución del trabajo, por lo que la conectividad local no es necesaria después del envío del trabajo.
¿Puedo cambiar el nombre de las bases de datos y las colecciones durante la migración?
La extensión no admite el cambio de nombre de la base de datos y la colección durante la migración.
¿Cómo debo configurar los firewalls del servidor de origen para evitar problemas de conectividad?
La configuración de red necesaria depende del modo de conectividad seleccionado:
- Modo público: Debe permitir que las direcciones IP que se muestran en el asistente en los firewalls de origen y de destino habiliten la comunicación.
- Modo privado: Debe habilitar la integración de red virtual para que los servidores DMS puedan comunicarse de forma segura con los puntos de conexión de origen y destino dentro de la red virtual.
Consulte también la conectividad de VS Code.
¿Cuántas bases de datos y colecciones puedo migrar en una sola migración?
Puede incluir un número ilimitado de colecciones en una sola migración.
¿Cuántos trabajos de migración puedo ejecutar simultáneamente?
Puede ejecutar varios trabajos de migración al usar el acceso público. Sin embargo, al usar el acceso privado, una sola red virtual solo puede admitir un trabajo activo a la vez. Para ejecutar varios trabajos con acceso privado, debe usar una red virtual diferente para cada trabajo.
¿Qué tipo de registros genera la extensión?
La extensión registra errores, advertencias y otros registros de diagnóstico en el directorio de registro predeterminado:
-
Windows -
C:\Users\<username>\.dmamongo\logs\ -
Linux -
~/.dmamongo/logs -
macOS -
/Users/<username>/.dmamongo/logs