Migración de MongoDB a Azure DocumentDB de forma online mediante la extensión de migración de Azure DocumentDB en versión preliminar pública

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

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 readAnyDatabase permisos y clusterMonitor , 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, insert y listCollections.

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

  1. Abra la extensión DocumentDB para VS Code .
  2. Agregue el servidor de MongoDB que desea migrar a la lista Conexiones de base de datos de documentos .
  3. Seleccione Agregar nueva conexión.
  4. En la barra de navegación, seleccione Cadena de conexión.
  5. Pega la cadena de conexión: mongodb://<YOUR_USERNAME>:<YOUR_PASSWORD>@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true&authMechanism=SCRAM-SHA-256
  6. 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.

  1. Haga clic con el botón derecho en una conexión expandida (conectada).

  2. Seleccione Migración de datos en el menú contextual.

    Captura de pantalla del menú contextual en Visual Studio Code.

  3. En la paleta de comandos, seleccione Migration a Azure DocumentDB. Captura de pantalla de la paleta de comandos que lista herramientas de migración en Visual Studio Code.

  4. A continuación, seleccione Migrate a Azure DocumentDB. Screenshot de la paleta de comandos que muestra la opción de migración en Visual Studio Code.

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

Captura de pantalla del paso de crear trabajo en el asistente.

Paso 2: Seleccionar destino

En este paso, seleccionará una cuenta de Azure DocumentDB existente y proporcionará su cadena de conexión.

  1. Seleccione la suscripción, el grupo de recursos y la cuenta de Azure DocumentDB desde las listas desplegables.

  2. Proporcione el cadena de conexión a la cuenta de DocumentDB de Azure.

  3. Asegúrese de que la dirección IP que aparece en la pantalla está permitida en el firewall de Azure DocumentDB.

  4. Seleccione Next (Siguiente) para continuar.

Captura de pantalla del paso de seleccionar destino en el asistente.

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.

Captura de pantalla del paso seleccionar Database Migration Service en el asistente.

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.

Captura de pantalla del paso de configuración de conectividad pública en el asistente.

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.

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

  2. En la sección Configuración de DMS , seleccione un intervalo CIDR que no entre en conflicto con las redes virtuales.

  3. Ejecute los scripts de PowerShell proporcionados en la pantalla para habilitar la integración de red virtual.

  4. Seleccione Next (Siguiente) para continuar.

Captura de pantalla del paso de configuración de conectividad privada en el asistente.

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

Captura de pantalla del paso de selección de colecciones en el asistente de configuración.

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.

Captura de la pantalla Ver trabajos existentes.

Para ver el estado de la colección, seleccione una fila de la tabla.

Captura de pantalla que muestra el estado según la colección para la migración sin conexión.

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:

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

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

  3. El intervalo de replicación muestra el intervalo de tiempo entre la última actualización y la hora actual.

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

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

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

Captura de pantalla que muestra el estado por colección para la migración en línea

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.

Diagrama que muestra la arquitectura de red para la conectividad pública.

Para habilitar la conectividad pública:

  1. En el Asistente para la migración, seleccione Público como modo de conectividad.

  2. Observe las direcciones IP estáticas que se muestran en el asistente.

  3. Agregue estas direcciones IP a la lista de permitidos del firewall en el servidor mongoDB de origen.

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

Diagrama que muestra la arquitectura de red para la conectividad privada desde otro proveedor de 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.

Diagram que muestra la arquitectura de red para la conectividad privada dentro de Azure

Para habilitar la conectividad privada:

  1. En el Asistente para la migración, seleccione Privado como modo de conectividad.

  2. Seleccione la suscripción, el grupo de recursos y la red virtual para el entorno de origen.

  3. Seleccione la suscripción, el grupo de recursos y la red virtual para el entorno de destino.

  4. En la sección Configuración de DMS , seleccione un intervalo CIDR que no entre en conflicto con las redes virtuales existentes.

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

  1. Vaya al portal de Azure y vaya a la suscripción.

  2. En el menú de la izquierda, seleccione Proveedores de recursos en Configuración.

  3. Busque Microsoft. DataMigration en el cuadro de búsqueda de la parte superior.

  4. Si no está registrado, selecciónelo y seleccione el botón Registrar .

CLI de Azure

  1. Abra el Azure Cloud Shell o el terminal local.

  2. Para registrar el proveedor de recursos, ejecute el siguiente comando:

    az provider register --namespace Microsoft.DataMigration
    

PowerShell

  1. Abra el Azure Cloud Shell o powerShell local.

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

Pasos siguientes