Tutorial: Migración de MySQL a Azure Database for MySQL sin conexión mediante DMS

Puede usar Azure Database Migration Service para realizar una migración sin problemas desde la instancia externa de MySQL a Azure Database for MySQL con la funcionalidad de migración de datos de alta velocidad. En este tutorial, migrará una base de datos de ejemplo a partir de una instancia local de MySQL 5.7 a Azure Database for MySQL (v5.7) mediante una actividad de migración sin conexión en Azure Database Migration Service. Aunque en los artículos se da por supuesto que el origen es una instancia de base de datos de MySQL y el destino es Azure Database for MySQL, se puede usar para migrar de una instancia de Azure Database for MySQL a otra simplemente cambiando el nombre y las credenciales del servidor de origen. También se admite la migración desde servidores MySQL de una versión inferior (v5.6 y versiones por encima) a versiones posteriores.

Nota:

Para obtener una versión que admite scripts basada en PowerShell de esta experiencia de migración, consulte la migración sin conexión mediante scripts a Azure Database for MySQL.

Los servicios Amazon Relational Database Service (RDS) para MySQL y Amazon Aurora (basado en MySQL) también se admiten como orígenes de la migración.

En este tutorial, aprenderá a:

  • Crear una instancia de DMS.
  • Crear un proyecto de migración de MySQL en DMS.
  • Migrar un esquema MySQL mediante DMS.
  • Ejecutar la migración.
  • Supervisar la migración

Requisitos previos

Para completar este tutorial, necesita:

  • Disponga de una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.

  • Disponer de una base de datos MySQL local con la versión 5.7. Si no la tiene, descargue e instale MySQL Community edition 5.7.

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

    Durante la configuración de la red virtual, si usa ExpressRoute con emparejamiento de red a Microsoft, agregue los puntos de conexión de servicio siguientes 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, punto de conexión de Azure Cosmos DB, etc.)
    • 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 el puerto de salida 443 de ServiceTag para ServiceBus, Storage y AzureMonitor. Para más información sobre el filtrado del tráfico con grupos de seguridad de red para redes virtuales, vea el artículo Filtrado del tráfico de red con grupos de seguridad de red.

  • Abra el firewall de Windows para permitir conexiones de la red virtual para que Azure Database Migration Service puede acceder al servidor MySQL de origen que, de manera predeterminada, usa el puerto TCP 3306.

  • Al usar un dispositivo de firewall frente a las bases de datos de origen, es posible que tenga que agregar reglas de firewall para permitir conexiones desde la red virtual a fin de que Azure Database Migration Service acceda a las bases de datos de origen para realizar la migración.

  • Cree una regla de firewall de nivel de servidor o configure puntos de conexión de servicio de red virtual para que la instancia de Azure Database for MySQL de destino permita la red virtual para que Azure Database Migration Service acceda a las bases de datos de destino.

  • La versión de la instancia de MySQL de origen debe ser compatible con MySQL community edition. Para determinar la versión de la instancia de MySQL, en la utilidad de MySQL o en MySQL Workbench, ejecute el siguiente comando:

    SELECT @@VERSION;
    
  • Azure Database for MySQL solo es compatible con tablas de InnoDB. Para convertir tablas de MyISAM a InnoDB, consulte el artículo Converting Tables from MyISAM to InnoDB (Cómo convertir tablas de MyISAM a InnoDB)

  • El usuario debe tener privilegios para leer datos en la base de datos de origen.

  • Para completar correctamente una migración del esquema, en el servidor de origen, el usuario que haga la migración necesitará los siguientes privilegios:

    • Privilegio "SELECT" en el nivel de servidor del origen.
    • Para migrar las vistas, el usuario debe tener el privilegio "SHOW VIEW" en el servidor de origen y el privilegio "CREATE VIEW" en el servidor de destino.
    • Para migrar desencadenadores, el usuario debe tener el privilegio "TRIGGER" en los servidores de origen y destino.
    • Para migrar rutinas (procedimientos o funciones), el usuario debe tener los privilegios "CREATE ROUTINE" y " ALTER ROUTINE" concedidos en el nivel de servidor del destino.
    • Para migrar eventos, el usuario debe tener el privilegio "EVENT" en los servidores de origen y de destino.
    • Para migrar usuarios o inicios de sesión, el usuario debe tener el privilegio "CREATE USER" en el servidor de destino.
    • Privilegio "DROP" en el nivel de servidor del destino para quitar las tablas que puedan existir. Por ejemplo, al volver a intentar hacer una migración.
    • Privilegio"REFERENCES" en el nivel de servidor del destino para crear tablas con claves externas.
    • Para migrar a MySQL 8.0, el usuario debe tener el privilegio "SESSION_VARIABLES_ADMIN" en el servidor de destino.
    • Privilegio "CREATE" en el nivel de servidor del destino.
    • Privilegio "INSERT" en el nivel de servidor del destino.
    • Privilegio "UPDATE" en el nivel de servidor del destino.
    • Privilegio "DELETE" en el nivel de servidor del destino.

Redimensionamiento de la instancia de Azure Database for MySQL de destino

Para preparar el servidor de destino de Azure Database for MySQL para cargas de datos más rápidas mediante Azure Database Migration Service, se recomiendan los siguientes parámetros de servidor y cambios de configuración.

  • max_allowed_packet: establézcalo en 1 073 741 824 (es decir, 1 GB) para evitar cualquier problema de conexión debido a filas largas.

  • slow_query_log: establézcalo en OFF para desactivar el registro de consultas lentas. Esto eliminará la sobrecarga causada por un registro de consultas lento durante las cargas de datos.

  • query_store_capture_mode: establézcalo en NONE para desactivar el Almacén de consultas. Esto eliminará la sobrecarga causada por las actividades de muestreo en el Almacén de consultas.

  • innodb_buffer_pool_size: innodb_buffer_pool_size solo se puede aumentar escalando el proceso para el servidor de Azure Database for MySQL. Escale verticalmente el servidor a una SKU de uso general de 64 núcleos virtuales del plan de tarifa del portal durante la migración para aumentar innodb_buffer_pool_size.

  • innodb_io_capacity e innodb_io_capacity_max: cambie a 9000 de los parámetros del servidor en Azure Portal para mejorar el uso de la E/S a fin de optimizar la velocidad de la migración.

  • innodb_write_io_threads e innodb_write_io_threads: cambie a 4 desde los parámetros del servidor en Azure Portal para mejorar la velocidad de la migración.

  • Escalar verticalmente la capa de almacenamiento: las IOPs para el servidor de Azure Database for MySQL aumentan progresivamente con el aumento de la capa de almacenamiento.

    • En la opción de implementación de servidor único, para cargas más rápidas, se recomienda aumentar el nivel de almacenamiento para aumentar las E/S por segundo aprovisionadas.
    • En la opción de implementación de servidor flexible, se recomienda escalar (aumentar o disminuir) las IOPS independientemente del tamaño de almacenamiento.
    • El almacenamiento solo se puede escalar verticalmente, no reducir.
  • Seleccione el tamaño de proceso y el nivel de proceso para el servidor flexible de destino en función del plan de tarifa y los núcleos virtuales del servidor único de origen según los detalles de la tabla siguiente.

    Plan de tarifa de servidor único Núcleos virtuales de servidor único Tamaño de los recursos de proceso de servidor flexible Nivel de proceso de servidor flexible
    Básico 1 1 De uso general Standard_D16ds_v4
    Básico 1 2 De uso general Standard_D16ds_v4
    Uso general 1 4 De uso general Standard_D16ds_v4
    Uso general 1 8 De uso general Standard_D16ds_v4
    De uso general 16 De uso general Standard_D16ds_v4
    De uso general 32 De uso general Standard_D32ds_v4
    De uso general 64 De uso general Standard_D64ds_v4
    Memoria optimizada 4 Crítico para la empresa Standard_E4ds_v4
    Memoria optimizada 8 Crítico para la empresa Standard_E8ds_v4
    Memoria optimizada 16 Crítico para la empresa Standard_E16ds_v4
    Memoria optimizada 32 Crítico para la empresa Standard_E32ds_v4

    1 A efectos de la migración, seleccione la opción de uso general 16 núcleos virtuales para que el servidor flexible de destino acelere las migraciones. Reajuste el tamaño de los recursos de proceso para el servidor de destino tras la migración de acuerdo con la recomendación de tamaño incluida en la sección Actividades posteriores a la migración, más adelante en este artículo.

Una vez completada la migración, puede revertir los parámetros del servidor y la configuración a los valores requeridos por la carga de trabajo.

Configuración de DMS

Con el servidor flexible de destino implementado y configurado, debe configurar DMS para migrar el servidor único a un servidor flexible.

Registrar el proveedor de recursos

Para registrar el proveedor de recursos Microsoft.DataMigration, siga los pasos que se indican.

  1. Antes de crear la primera instancia de DMS, inicie sesión en Azure Portal y, a continuación, busque y seleccione Suscripciones.

    Captura de pantalla que muestra la selección de suscripciones en Azure Marketplace.

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

    Captura de pantalla que muestra la selección de un proveedor de recursos.

  3. Busque el término "Migración" y, después, seleccione Registrar en Microsoft.DataMigration.

    Captura de pantalla que muestra el registro de un proveedor de recursos.

Creación de una instancia de Azure Database Migration Service

  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.

    Captura de pantalla de Azure Marketplace.

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

    Captura de pantalla que muestra cómo crear una instancia de Azure Database Migration Service.

  3. En la pantalla 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 un plan de tarifa y pase a la pantalla de redes. La funcionalidad de migración sin conexión solo está disponible en el plan de tarifa Premium.

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

    Captura de pantalla de la configuración básica de Azure Database Migration Service.

  5. Seleccione una red virtual existente en la lista o proporcione el nombre de la nueva red virtual que se va a crear. Acceda a la pantalla de revisión y creación. Como alternativa, puede agregar etiquetas al servicio mediante la pantalla de etiquetas.

    La red virtual proporciona a Azure Database Migration Service acceso al servidor SQL Server de origen y a la instancia de Azure SQL Database de destino.

    Captura de pantalla de la configuración de red de Azure Database Migration Service.

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

  6. Revise las configuraciones y seleccione Crear para crear el servicio.

    Captura de pantalla de Crear Azure Database Migration Service.

Creación de un proyecto de migración

Después de crear el servicio, búsquelo en Azure Portal, ábralo y 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.

    Captura de pantalla en la que se muestra cómo localizar todas las instancias de Azure Database Migration Service.

  2. Seleccione la instancia del servicio de migración en los resultados de búsqueda y seleccione Nuevo proyecto de migración.

    Captura de pantalla en la que se muestra la creación de un proyecto de migración.

  3. En la pantalla Nuevo proyecto de migración, especifique un nombre para el proyecto. En el cuadro de selección Tipo de servidor de origen, seleccione MySQL y, en el cuadro selección Tipo de servidor de destino, seleccione Azure Database for MySQL. Por último, en el cuadro de selección Tipo de actividad de migración, seleccione Migración de datos. Seleccione Crear y ejecutar una actividad.

    Captura de pantalla de la creación de un proyecto de Database Migration Service.

    Como alternativa, puede elegir Crear solo un proyecto para crear el proyecto de migración ahora y ejecutar la migración más adelante.

Configuración del proyecto de migración

  1. En la pantalla Seleccionar origen, especifique los detalles de conexión de la instancia de origen de MySQL Server y seleccione Siguiente: Seleccionar destino>>

    Captura de la pantalla Agregar detalles del origen.

  2. En la pantalla Seleccionar destino, especifique los detalles de conexión para la instancia de destino de Azure Database for MySQL y seleccione Siguiente: Seleccionar bases de datos>>

    Captura de la pantalla de Agregar detalles del destino.

  3. En la pantalla Seleccionar bases de datos, asigne el origen a la base de datos de destino para la migración y seleccione Siguiente: Configurar los valores de migración>>. Puede seleccionar la opción Make Source Server Readonly (Hacer que el servidor de origen sea de solo lectura) para que el origen sea de solo lectura, pero tenga en cuenta que esta es una configuración de nivel de servidor. Si la opción se selecciona, establecerá todo el servidor como de solo lectura, no únicamente las bases de datos seleccionadas.

    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.

    Captura de la pantalla Seleccionar detalles de base de datos.

  4. En la pantalla Configurar los valores de la migración, seleccione las tablas que formarán parte de la migración. A continuación, seleccione Siguiente: Resumen>>. Si las tablas de destino contienen datos, no se seleccionarán de manera predeterminada, pero puede seleccionarlas explícitamente y se truncarán antes de iniciar la migración.

    Captura de la pantalla de Seleccionar tablas.

  5. En la pantalla Resumen, en el cuadro de texto Nombre de la actividad, especifique un nombre para la actividad de migración y, a continuación, revise el resumen para asegurarse de que los detalles de origen y de destino coincidan con los que especificó anteriormente.

    Captura de pantalla del resumen del proyecto de migración.

  6. Seleccione Iniciar migración. Aparecerá la ventana de actividad de migración. El estado de la actividad es Inicializando. El estado cambia a En ejecución cuando se inician las migraciones de tabla.

    Captura de pantalla de la ejecución de la migración.

Supervisión de la migración

  1. En la pantalla de la actividad de migración, seleccione Actualizar para ver la información actualizada y el progreso en relación con el número de tablas completadas.

  2. Puede seleccionar el nombre de la base de datos en la pantalla de actividad para ver el estado de cada tabla a medida que se migran. Seleccione Actualizar para ver la información actualizada.

    Captura de pantalla de la supervisión de la migración.

Completar la migración

  1. En la pantalla de la actividad de migración, seleccione Actualizar para actualizar la vista hasta que el valor de Estado de la migración sea Completado.

    Captura de pantalla de la migración completa.

Actividades posteriores a la migración

La migración total en una migración sin conexión es un proceso dependiente de la aplicación que queda fuera del alcance de este documento, pero se recomienda llevar a cabo las siguientes actividades después de la migración:

  1. Crear inicios de sesión, roles y permisos según los requisitos de la aplicación.
  2. Volver a crear todos los desencadenadores de la base de datos de destino que se retiraron en el paso previo a la migración.
  3. Hacer pruebas de seguridad de la aplicación en la base de datos de destino para verificar la migración.

Limpieza de recursos

Si no va a seguir usando Database Migration Service, puede eliminar el servicio mediante los pasos siguientes:

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

    Captura de pantalla de la búsqueda de todas las instancias de DMS.

  2. Seleccione la instancia del servicio de migración en los resultados de la búsqueda. A continuación, seleccione Eliminar servicio.

    Captura de pantalla de eliminación del servicio de migración.

  3. En el cuadro de diálogo de confirmación, escriba el nombre del servicio en el cuadro de texto TYPE THE DATABASE MIGRATION SERVICE (ESCRIBIR EL NOMBRE DE DATABASE MIGRATION SERVICE) y seleccione Eliminar.

    Captura de pantalla de Confirmar la eliminación del servicio de migración.