Tutorial: Utilizar Azure Database Migration Service para realizar migraciones de MongoDB a Azure Cosmos DB for MongoDB RU sin conexión

SE APLICA A: MongoDB

Importante

Lea toda esta guía antes de llevar a cabo los pasos de migración. Azure Database Migration Service no admite actualmente migraciones a una cuenta de núcleo virtual de Azure Cosmos DB for MongoDB. Se puede usar la extensión de Azure Cosmos DB para MongoDB en Azure Data Studio para migrar las cargas de trabajo de MongoDB sin conexión al núcleo virtual de Azure Cosmos DB for MongoDB.

Esta guía de migración de MongoDB forma parte de la serie sobre la migración de MongoDB. Los pasos críticos de la migración de MongoDB son la migración previa, la migración y la migración posterior, como se muestra a continuación.

Diagram of migration steps.

Introducción a la migración de datos sin conexión de MongoDB a Azure Cosmos DB mediante DMS

Use Azure Database Migration Service para realizar una migración de bases de datos única y sin conexión desde una instancia local o en la nube de MongoDB a Azure Cosmos DB for MongoDB.

En este tutorial, aprenderá a:

  • Crear una instancia de Azure Database Migration Service.
  • Crear un proyecto de migración mediante Azure Database Migration Service.
  • Ejecutar la migración.
  • Supervisar la migración

En este tutorial, migrará un conjunto de datos en MongoDB que se hospeda en una máquina virtual de Azure. Con Azure Database Migration Service se puede migrar el conjunto de datos a Azure Cosmos DB for MongoDB. Si aún no tiene un origen de MongoDB configurado, consulte Instalación y configuración de MongoDB en una máquina virtual Windows en Azure.

Requisitos previos

Para completar este tutorial, necesita:

  • Realizar los pasos previos a la migración, a saber, calcular el rendimiento y elegir una clave de partición.

  • Cree una cuenta para Azure Cosmos DB for MongoDB.

    Nota

    DMS no se admite actualmente si va a migrar a una cuenta de Azure Cosmos DB for MongoDB aprovisionada con el modo sin servidor.

  • Crear una instancia de Microsoft Azure Virtual Network para Azure Database Migration Service mediante Azure Resource Manager. Este modelo de implementación proporciona conectividad entre sitios con sus servidores de origen local mediante Azure ExpressRoute o VPN. Para más información sobre la creación de una red virtual, consulte la documentación de Azure Virtual Networky, especialmente, los artículos de "inicio rápido" con detalles paso a paso.

    Nota

    Durante la configuración de la red virtual, si usa ExpressRoute con emparejamiento de red a Microsoft, agregue los siguientes puntos de conexión de servicio a la subred en la que se aprovisionará el servicio:

    • Punto de conexión de base de datos de destino (por ejemplo, punto de conexión de SQL o punto de conexión de Azure Cosmos DB)
    • Punto de conexión de Storage
    • Punto de conexión de Service Bus

    Esta configuración es necesaria porque Azure Database Migration Service no tiene conexión a Internet.

  • Asegúrese de que las reglas del grupo de seguridad de red de la red virtual no bloquean los siguientes puertos de comunicación: 53, 443, 445, 9354 y 10000-20000. Para más información, consulte Filtrado del tráfico de red con grupos de seguridad de red.

  • Abra el Firewall de Windows para permitir que Azure Database Migration Service acceda al servidor de MongoDB de origen que, de manera predeterminada, es el puerto TCP 27017.

  • Cuando se usa un dispositivo de firewall delante de la base de datos de origen, es posible que sea necesario agregar reglas de firewall para que Azure Database Migration Service pueda acceder a la base de datos de origen para realizar la migración.

Configuración de la característica de reintento en el servidor

Si migra desde MongoDB a Azure Cosmos DB, puede beneficiarse de las funcionalidades de gobernanza de recursos. Con estas funcionalidades, puede hacer un uso completo de las unidades de solicitud aprovisionadas (RU/s) del rendimiento. Azure Cosmos DB puede limitar una solicitud determinada de Data Migration Service en el transcurso de la migración si esa solicitud supera las unidades de solicitud aprovisionadas del contenedor. Si eso sucediera, la solicitud se debe reintentar.

Database Migration Service puede realizar reintentos. Es importante saber que el tiempo de ida y vuelta implicado en el salto de red entre Database Migration Service y Azure Cosmos DB afecta al tiempo de respuesta general de la solicitud. Mejorar el tiempo de respuesta de las solicitudes limitadas puede acortar el tiempo total necesario para la migración.

La característica de reintento en el lado servidor de Azure Cosmos DB permite al servicio interceptar los códigos de error de limitación y volver a intentar la operación con un tiempo de ida y vuelta mucho menor, lo que mejora considerablemente los tiempos de respuesta de las solicitudes.

Para usar esta característica, en el portal de Azure Cosmos DB, seleccione Features>Server Side Retry (Características > Reintento en el servidor).

Screenshot that shows where to find the Server Side Retry feature.

Si la característica está deshabilitada, seleccione Habilitar.

Screenshot that shows how to enable Server Side Retry.

Registrar el proveedor de recursos

Registre el proveedor de recursos Microsoft.DataMigration antes de crear su primera instancia de Database Migration Service.

  1. Inicie sesión en Azure Portal. Busque y seleccione Suscripciones.

    Show portal subscriptions

  2. Seleccione la suscripción en la que quiere crear la instancia de Azure Database Migration Service y después seleccione Proveedores de recursos.

    Show resource providers

  3. Busque la migración y, después, seleccione Registrar para Microsoft.DataMigration.

    Register resource provider

Creación de una instancia

  1. En Azure Portal, seleccione + Crear un recurso, busque Azure Database Migration Service y, después, seleccione Azure Database Migration Service en la lista desplegable.

    Screenshot that shows Azure Marketplace.

  2. En la pantalla Azure Database Migration Service, seleccione Crear.

    Screenshot that shows how to create an instance of Azure Database Migration Service.

  3. En Crear el servicio de migración, especifique un nombre para el servicio, la suscripción y un grupo de recursos nuevo o existente.

  4. Seleccione la ubicación en la que quiere crear la instancia de Azure Database Migration Service.

  5. Seleccione una red virtual existente o cree una nueva.

    La red virtual proporciona a Azure Database Migration Service acceso a la instancia de MongoDB de origen y a la cuenta de Azure Cosmos DB de destino.

    Para más información sobre cómo crear una red virtual en Azure Portal, consulte el artículo sobre la creación de una red mediante Azure Portal.

  6. Seleccione un plan de tarifa.

    Para más información sobre los costos y planes de tarifa, vea la página de precios.

    Screenshot that shows configuration settings for the instance of Azure Database Migration Service.

  7. Seleccione Crear para crear el servicio.

Creación de un proyecto de migración

Después de crear el servicio, búsquelo en Azure Portal y ábralo. Luego, cree un proyecto de migración.

  1. En Azure Portal, seleccione Todos los servicios, busque Azure Database Migration Service y, luego, elija Azure Database Migration Services.

    Screenshot that shows how to locate all instances of Azure Database Migration Service.

  2. En la pantalla Azure Database Migration Services, busque el nombre de la instancia de Azure Database Migration Service que creó y, después, seleccione la instancia.

  3. Seleccione + New Migration Project (+ Nuevo proyecto de migración).

  4. En Nuevo proyecto de migración, especifique un nombre para el proyecto y en el cuadro de texto Tipo de servidor de origen, seleccione MongoDB. En el cuadro de texto Tipo de servidor de destino, seleccione Azure Cosmos DB for NoSQL y en Elegir el tipo de actividad, seleccione Migración de datos sin conexión.

    Screenshot that shows project options.

  5. Seleccione Crear y ejecutar una actividad para crear el proyecto y ejecutar la actividad de migración.

Especificación de los detalles de origen

  1. En la pantalla Detalles del origen, especifique los detalles de conexión del servidor de MongoDB de origen.

    Importante

    Azure Database Migration Service no admite Azure Cosmos DB como origen.

    Hay tres modos de conexión a un origen:

    • Modo estándar, que acepta un nombre de dominio completo o una dirección IP, número de puerto y las credenciales de conexión.

    • Modo de cadena de conexión, que acepta una cadena de conexión de MongoDB, como se describe en el artículo sobre el formato del identificador URI de la cadena de conexión.

    • Datos de Azure Storage, que acepta un dirección URL de SAS del contenedor de blobs. Seleccione El blob contiene volcados BSON si el contenedor de blobs tiene volcados BSON generados por la herramienta bsondump de MongoDB. Si el contenedor tiene archivos JSON, no seleccione esta opción.

      Si selecciona esta opción, asegúrese de que la cadena de conexión de la cuenta de almacenamiento aparece en el siguiente formato:

      https://blobnameurl/container?SASKEY
      

      Esta cadena de conexión de SAS del contenedor de blobs se puede encontrar en el Explorador de Azure Storage. La creación de SAS para el contenedor implicado le proporcionará la dirección URL con el formato solicitado.

      Además, según la información del tipo de volcado de memoria de Azure Storage, tenga en cuenta lo siguiente:

      • En el caso de los volcados de BSON, los datos del contenedor de blobs deben estar en formato bsondump. Coloque los archivos de datos en carpetas cuyo nombre coincida con el de las bases de datos contenedoras con el formato colección.bson. Asigne un nombre a los archivos de metadatos, y utilice para ello el formato colección.metadatos.json.

      • En el caso de los volcados de JSON, los archivos del contenedor de blobs deben colocarse en carpetas que se llamen igual que las bases de datos que contienen. Dentro de cada una de estas carpetas, los archivos de datos se deben colocar en una subcarpeta denominada data y se debe usar el formato colección.json para asignarles el nombre. Coloque los archivos de metadatos en una subcarpeta denominada metadata y utilice el mismo formato, colección.json. Los archivos de metadatos deben estar en el mismo formato que los que genera la herramienta bsondump de MongoDB.

    Importante

    No se recomienda usar certificados autofirmados en el servidor de MongoDB. Si debe usarlos, utilice el modo de cadena de conexión para conectarse al servidor y asegúrese de que la cadena de conexión aparece entre comillas ("").

    &sslVerifyCertificate=false
    

    También puede usar la dirección IP en aquellos casos en que no sea posible la resolución de nombres de DNS.

    Screenshot that shows specifying source details.

  2. Seleccione Guardar.

Especificación de los detalles de destino

  1. En la pantalla Detalles del destino de la migración, especifique los detalles de conexión de la cuenta de Azure Cosmos DB de destino. Esta cuenta es la de Azure Cosmos DB for MongoDB aprovisionada previamente a la que va a migrar los datos de MongoDB.

    Screenshot that shows specifying target details.

  2. Seleccione Guardar.

Asignación a bases de datos de destino

  1. En la pantalla Map to target databases (Asignar a bases de datos de destino), asigne la base de datos de origen y de destino para la migración.

    Si la base de datos de destino contiene el mismo nombre de base de datos que la de origen, Azure Database Migration Service selecciona la base de datos de destino de forma predeterminada.

    Si Create (Crear) aparece junto al nombre de la base de datos, indica que Azure Database Migration Service no encontró la base de datos de destino, y el servicio creará la base de datos automáticamente.

    En este momento de la migración, puede aprovisionar rendimiento. En Azure Cosmos DB, puede aprovisionar rendimiento a nivel de base de datos o individualmente para cada colección. El rendimiento se mide en unidades de solicitud. Obtenga más información sobre los precios de Azure Cosmos DB.

    Screenshot that shows mapping to target databases.

  2. Seleccione Guardar.

  3. En la pantalla Configuración de colecciones, expanda la lista de colecciones y, a continuación, revise la lista de las colecciones que se van a migrar.

    Azure Database Migration Service selecciona automáticamente todas las colecciones existentes en la instancia de MongoDB de origen que no existen en la cuenta de Azure Cosmos DB de destino. Si quiere volver a migrar las colecciones que ya incluyen datos, necesita seleccionar explícitamente las colecciones de este panel.

    Puede especificar el número de unidades de solicitud que desea que usen las colecciones. Azure Database Migration Service sugiere valores predeterminados inteligentes en función del tamaño de la colección.

    Nota

    Realice la migración de la base de datos y la recopilación en paralelo. Si fuera necesario, puede usar varias instancias de Azure Database Migration Service para acelerar la ejecución.

    También puede especificar una clave de partición para aprovechar las ventajas de la creación de particiones en Azure Cosmos DB para una escalabilidad óptima. Examine los procedimientos recomendados para seleccionar una partición o clave de partición.

    Screenshot that shows selecting collections tables.

  4. Seleccione Guardar.

  5. En la pantalla Migration summary (Resumen de migración), en el cuadro de texto Nombre de actividad, especifique un nombre para la actividad de migración.

    Screenshot that shows the nigration summary.

Ejecución de la migración

Seleccione Ejecutar migración. Aparece la ventana de actividad de la migración y el estado de la actividad será Sin iniciar.

Screenshot that shows the activity status.

Supervisión de la migración

En la pantalla de la actividad de migración, seleccione Actualizar para actualizar la pantalla hasta que el estado de la migración sea Completado.

Nota

Puede seleccionar la actividad para obtener los detalles de las métricas de migración a nivel de base de datos y de colección.

Screnshot that shows the activity status completed.

Comprobación de los datos en Azure Cosmos DB

Después de finalizar la migración, podrá consultar la cuenta de Azure Cosmos DB para comprobar que todas las colecciones han migrado correctamente.

Screenshot that shows where to check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

Optimización posterior a la migración

Después de migrar los datos almacenados en la base de datos de MongoDB a Azure Cosmos DB for MongoDB, puede conectarse a Azure Cosmos DB y administrar los datos. También puede realizar otros pasos de optimización posteriores a la migración, entre los que se podrían incluir la optimización de la directiva de indexación, la actualización del nivel de coherencia predeterminado o la configuración de la distribución global de la cuenta de Azure Cosmos DB. Para más información, consulte Optimización posterior a la migración.

Recursos adicionales

Pasos siguientes

En la Guía de migración de bases de datos de Azure encontrará más escenarios que le servirán de guía para la migración.