Tutorial: Migración sin conexión de una instancia de servidor único de Azure Database for MySQL a una instancia de servidor flexible mediante DMS a través de Azure Portal

Es posible migrar una instancia de servidor único de Azure Database for MySQL a una instancia de servidor flexible mediante Azure Database Migration Service (DMS), un servicio totalmente administrado diseñado para habilitar migraciones eficaces desde varios orígenes de base de datos a plataformas de datos de Azure. En este tutorial, se hará una migración sin conexión de una base de datos de ejemplo desde una instancia de servidor único de Azure Database for MySQL a una instancia de servidor flexible de MySQL (ambos ejecutan la versión 5.7) mediante una actividad de migración de DMS.

Nota

DMS también permite migrar servidores MySQL con versiones inferiores (como la 5.6 y otras) a versiones superiores. Además, DMS admite migraciones entre regiones, entre grupos de recursos y entre suscripciones, por lo que se puede seleccionar para el servidor de destino una región, un grupo de recursos y una suscripción que sean diferentes a los especificados para el servidor de origen.

Importante

En el caso de las migraciones en línea, puede habilitar las transacciones coherentes, una característica compatible con DMS junto con la replicación de datos de entrada o la replicación de cambios. Además, puede usar el escenario de migración en línea para llevar a cabo la migración siguiendo este tutorial.

En este tutorial, aprenderá a:

  • Implemente los procedimientos recomendados para crear un servidor flexible y agilizar las cargas de datos mediante DMS.
  • Crear y configurar un servidor flexible de destino.
  • 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
  • Aplicar los pasos posteriores a la migración.
  • Seguir los procedimientos recomendados para hacer una migración.

Requisitos previos

Para completar este tutorial, necesita:

  • Crear o usar una instancia existente de servidor único de Azure Database for MySQL (el servidor 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.

Limitaciones

A medida que se prepare para la migración, asegúrese de tener en cuenta las siguientes limitaciones.

  • Al migrar objetos que no son de tabla, DMS no permitirá cambiar el nombre de las bases de datos.
  • Al hacer la migración a un servidor de destino con bin_log habilitado, asegúrese de habilitar log_bin_trust_function_creators para permitir la creación de rutinas y desencadenadores.
  • Al migrar el esquema, DMS no permite crear una base de datos en el servidor de destino.
  • Actualmente, DMS no permite migrar la cláusula DEFINER para objetos. Todos los tipos de objeto que incluyan definidores en el origen se descartarán y, después de la migración, el definidor predeterminado para las tablas se establecerá en el inicio de sesión usado para llevar a cabo la migración.
  • Actualmente, DMS solo permite migrar un esquema como parte del movimiento de datos. Si no se selecciona nada para el movimiento de datos, no se producirá la migración del esquema. Tenga en cuenta que seleccionar una tabla para la migración del esquema también la selecciona para el movimiento de datos.

Procedimientos recomendados para crear un servidor flexible y agilizar las cargas de datos mediante DMS

DMS admite la migración entre regiones, grupos de recursos y suscripciones, por lo que puede seleccionar la región, el grupo de recursos y la suscripción adecuados para el servidor flexible de destino. Antes de crear el servidor flexible de destino, tenga en cuenta las siguientes instrucciones de configuración para ayudar a garantizar las cargas de datos más rápidas mediante DMS.

  • 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 De uso general Standard_D16ds_v4
    Básico* 2 De uso general Standard_D16ds_v4
    Uso general* 4 De uso general Standard_D16ds_v4
    Uso general* 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

*A efectos de la migración, seleccione la opción de uso general y 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.

  • La versión de MySQL para el servidor flexible de destino debe ser mayor o igual que la del servidor único de origen.
  • A menos que tenga que implementar el servidor flexible de destino en una zona específica, establezca el valor del parámetro de zona de disponibilidad en "Ninguna preferencia".
  • Para la conectividad de red, en la pestaña Redes, si el servidor único de origen tiene configurados puntos de conexión o vínculos privados, seleccione Acceso privado. En caso contrario, seleccione Acceso público.
  • Copie todas las reglas de firewall del servidor único de origen en el servidor flexible de destino.
  • Durante el proceso de creación, copie todas las etiquetas name/value del servidor único al servidor flexible.

Creación y configuración del servidor flexible de destino

Teniendo en cuenta estos procedimientos recomendados, cree el servidor flexible de destino y configúrelo.

  • Cree el servidor flexible de destino. Para ver los pasos indicados, consulte el inicio rápido Creación de un servidor flexible Azure Database for MySQL.
  • A continuación, para configurar el servidor flexible de destino recién creado, tenga en cuenta lo siguiente:
    • El usuario que haga la migración necesitará los siguientes permisos:
      • Para crear tablas en el destino, el usuario debe tener el privilegio "CREATE".
      • Si se migra a una tabla con una opción "UNION", el usuario debe tener los privilegios "SELECT", "UPDATE" y "DELETE" para las tablas que asigne a una tabla MERGE.
      • Si se migran vistas, el usuario debe tener el privilegio "CREATE VIEW". Recuerde que algunos privilegios pueden ser necesarios en función del contenido de las vistas. Para obtener más información, consulte la documentación de MySQL específica para su versión de "CREATE VIEW STATEMENT".
      • Si se migran eventos, el usuario debe tener el privilegio "EVENT".
      • Si se migran desencadenadores, el usuario debe tener el privilegio "TRIGGER".
      • Si se migran rutinas, el usuario debe tener el privilegio "CREATE ROUTINE".
    • Cree una base de datos de destino, aunque no es necesario rellenarla con tablas o vistas, etc.
      • Establezca el carácter, las intercalaciones y cualquier otra configuración de esquema aplicable antes de iniciar la migración, ya que esto puede afectar al conjunto DEFAULT en algunas de las definiciones de objeto.
      • Además, si migra objetos que no son de tabla, asegúrese de usar el mismo nombre para el esquema de destino que para el de origen.
    • Configure los parámetros del servidor en el servidor flexible de destino de la siguiente manera:
      • Establezca la versión de TLS y el parámetro de servidor require_secure_transport para que coincidan con los valores del servidor de origen.
      • Establezca el parámetro de servidor sql_mode para que coincida con los valores del servidor de origen.
      • Configure los parámetros de servidor en el servidor de destino para que coincidan con los valores no predeterminados usados en el servidor de origen.
      • Para garantizar cargas de datos más rápidas al usar DMS, configure los parámetros de servidor siguientes del modo descrito.
        • max_allowed_packet: establézcalo en 1073741824 (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.
        • Innodb_buffer_pool_size: solo se puede aumentar mediante la ampliación de los recursos de 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: se cambiará a 4 desde los parámetros de servidor en Azure Portal para mejorar la velocidad de la migración.
    • Configure las réplicas en el servidor de destino para que coincidan con las del servidor de origen.
    • Replique las siguientes características de administración del servidor desde el servidor único de origen al servidor flexible de destino:
      • Asignaciones de roles, roles, asignaciones de denegación, administradores clásicos, control de acceso (IAM)
      • Bloqueos (solo lectura y eliminación)
      • Alertas
      • Tareas
      • Alertas sobre el estado de los recursos

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 de 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 la selección de la opción de registro.

Creación de una instancia de Database Migration Service (DMS)

  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 una búsqueda en Azure Database Migration Service.

  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 página Seleccionar escenario de migración y Database Migration Service, en Escenario de migración, seleccione Azure Database for MySQL-Single Server como tipo de servidor de origen y, a continuación, seleccione Azure Database for MySQL como tipo de servidor de destino y, por último, Seleccionar. Captura de pantalla que muestra la selección de un escenario de migración.

  4. En la página de creación del servicio de migración, en la pestaña Aspectos básicos y en Detalles del proyecto, seleccione la suscripción adecuada y, a continuación, un grupo de recursos existente, o bien cree uno nuevo.

  5. En Detalles de la instancia, especifique un nombre para el servicio, seleccione una región y compruebe que Azure se ha seleccionado como modo de servicio.

  6. A la derecha del plan de tarifa, seleccione Configure tier. Captura de pantalla que muestra la selección de un nivel de configuración.

  7. En la página Configuración, seleccione el plan de tarifa Premium con 4 núcleos virtuales para la instancia de DMS. Después, seleccione Aplicar. DMS Premium con 4 núcleos virtuales es gratuito durante 6 meses (183 días) desde la fecha de creación del servicio DMS, antes de incurrir en cargos. Para más información sobre los costos de DMS y planes de tarifa, vea la página de precios. Captura de pantalla que muestra la selección de un plan de tarifa.

    A continuación, es necesario especificar la red virtual que permitirá a la instancia de DMS acceder al servidor único de origen y al servidor flexible de destino.

  8. En la página Create Migration Service, seleccione Next : Networking>>.

  9. En la pestaña Networking, seleccione una red virtual existente en la lista o proporcione el nombre de la nueva red virtual que se va a crear y, a continuación, seleccione Review + Create.

    Para más información, consulte el artículo Creación de una red virtual mediante Azure Portal. Captura de pantalla que muestra la selección de redes.

    Importante

    La red virtual debe configurarse con acceso tanto al servidor único de origen como al servidor flexible de destino, así que asegúrese de completar estos pasos:

    • Cree una regla de firewall a nivel de servidor o configure puntos de conexión de servicio de red virtual para que los servidores de origen y destino de la instancia de Azure Database for MySQL facilite el acceso de la red virtual para Azure Database Migration Service a las bases de datos de origen y de destino.
    • Asegúrese de que las reglas del grupo de seguridad de red (NSG) para redes virtuales no bloqueen el puerto 443 de salida de ServiceTag para ServiceBus, Storage y Azure Monitor. Para obtener más información sobre el filtrado del tráfico con grupos de seguridad de red para redes virtuales, consulte Filtrado del tráfico de red mediante grupos de seguridad de red.

    Nota

    Si desea agregar etiquetas al servicio, primero seleccione Siguiente: Etiquetas para avanzar primero a la pestaña Etiquetas. Agregar etiquetas al servicio es opcional.

  10. Vaya a la pestaña Review + create, revise las configuraciones, consulte los términos y seleccione Crear. Captura de pantalla de una selección de Revisar y crear.

    Ahora comienza la implementación de la instancia de DMS. El mensaje Deployment is in progress aparecerá durante unos minutos y después cambiará a Your deployment is complete.

  11. Haga clic en Go to resource (Ir al recurso). Captura de pantalla que muestra cómo seleccionar la opción para ir al recurso.

  12. Identifique la dirección IP de la instancia de DMS en la página de información general del recurso y cree una regla de firewall para el servidor único de origen y el servidor flexible de destino que permitan listar la dirección IP de la instancia de DMS.

Creación de un proyecto de migración

Para crear un proyecto de migración, siga los pasos que se indican.

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

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

  2. En los resultados de la búsqueda, seleccione la instancia de DMS que ha creado y, a continuación, seleccione + Nuevo proyecto de migración.

    Captura de pantalla que muestra cómo seleccionar un nuevo proyecto de migración.

  3. En la página de nuevo proyecto de migración, especifique un nombre para el proyecto. En el cuadro de selección Source server type, seleccione Azure Database For MySQL – Single Server y en el cuadro selección Target server type, seleccione Azure Database for MySQL, en el cuadro de selección Migration activity type, seleccione Online migration y, después, seleccione Create and run activity.

    Nota

    Al seleccionar Solo crear el proyecto como tipo de actividad de migración, solo se creará el proyecto de migración. En ese caso, podrá ejecutar el proyecto de migración más adelante.

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

Configuración del proyecto de migración

Para configurar el proyecto de migración de DMS, los pasos que se indican.

  1. Para continuar con la migración sin conexión, antes de configurar Seleccionar origen en la pantalla, abra una pestaña de nueva ventana y vaya a la página de información general del servidor de origen en Azure Portal y continúe a la hoja Parámetros del servidor. Configure el valor del parámetro de servidor read_only para el servidor de origen como ON.

    Establecer el servidor de origen en modo de solo lectura mediante la actualización del parámetro de servidor antes de iniciar la migración evita las operaciones de escritura y eliminación en el servidor de origen durante la migración, lo que garantiza la integridad de los datos de la base de datos de destino al migrar el origen.

    Nota

    Como alternativa, si estuviera realizando una migración en línea, tendría que seleccionar la casilla Habilitar coherencia transaccional en la pantalla para seleccionar un origen. Para más información sobre la copia de seguridad coherente, consulte Copia de seguridad coherente de MySQL.

  2. Vuelva a la pantalla de configuración del proyecto de migración y, en la pantalla Seleccionar origen, especifique los detalles de conexión de la instancia de MySQL de origen. Captura de pantalla que muestra el cuadro de diálogo para agregar los detalles del origen.

  3. Seleccione Siguiente: Seleccionar destino>> y, a continuación, en la pantalla Seleccionar destino, especifique los detalles de conexión para el servidor flexible de destino. Captura de pantalla que muestra cómo seleccionar un destino.

  4. Seleccione Siguiente: Seleccionar bases de datos>> y, a continuación, en la pestaña Seleccionar bases de datos, en [Preview] Select server objects, seleccione los objetos de servidor que desea migrar. Captura de pantalla que muestra cómo seleccionar una base de datos.

  5. En la sección Seleccionar bases de datos, en Base de datos de origen, seleccione las bases de datos para migrar.

    Los objetos que no son de tabla se migrarán de las bases de datos especificadas, mientras que los elementos que no se hayan seleccionado se omitirán.

  6. Seleccione Siguiente: Seleccionar bases de datos>> para ir a la pestaña Seleccionar tablas.

    Antes de rellenar la pestaña, DMS captura las tablas de las bases de datos seleccionadas en el origen y el destino y, a continuación, determina si la tabla existe y contiene datos.

  7. Seleccione las tablas que desea migrar.

    Si selecciona una tabla en la base de datos de origen que no exista en la base de datos de destino, el cuadro debajo de Migrar esquema estará seleccionado de forma predeterminada. En el caso de las tablas que ya existen en la base de datos de destino, una nota indicará que la tabla seleccionada ya contiene datos y se truncará. Además, si el esquema de una tabla en el servidor de destino no coincide con el esquema del origen, la tabla se descartará antes de que continúe la migración. Captura de pantalla que muestra cómo seleccionar tablas.

    DMS valida las entradas y, si la validación es correcta, podrá iniciar la migración.

  8. Después de configurar para la migración del esquema, seleccione Revisar e iniciar la migración.

    Nota

    Solo tiene que ir a la pestaña Configuración de las opciones de migración si está intentando solucionar errores con las migraciones.

  9. En la pantalla Resumen, en el cuadro de texto Nombre de actividad, especifique un nombre para la actividad de migración y consulte el resumen para asegurarse de que los detalles de origen y de destino coincidan con los que especificó anteriormente. Captura de la pantalla que muestra cómo seleccionar un resumen.

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

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. Para ver el estado de cada tabla durante la migración, seleccione el nombre de la base de datos y después Actualizar para actualizar la pantalla.

  3. Seleccione Actualizar para actualizar la pantalla hasta que el estado de la migración sea Completado. Captura de la pantalla que muestra cómo seleccionar un estado de migración.

Actividades posteriores a la migración

Una vez finalizada la migración, asegúrese de completar las siguientes actividades posteriores a la migración.

  • Hacer pruebas de seguridad de la aplicación en la base de datos de destino para verificar la migración.

  • Actualice la cadena de conexión para que apunte al nuevo servidor flexible de destino.

  • Elimine el servidor único de origen después de asegurar la continuidad de la aplicación.

  • Si ha aplicado escalabilidad vertical al servidor flexible de destino para acelerar la migración, vuelva a ajustarlo al valor original. Para ello, seleccione el tamaño de proceso y el nivel de proceso para el servidor flexible de destino de acuerdo con el 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 Flexible Standard_B1s
    Básico 2 Flexible Standard_B2s
    De uso general 4 De uso general Standard_D4ds_v4
    De uso general 8 De uso general Standard_D8ds_v4
  • Limpie los recursos de Data Migration Service:

    1. En Azure Portal, seleccione Todos los servicios, busque Azure Database Migration Service y, luego, elija Azure Database Migration Services.
    2. Seleccione la instancia del servicio de migración en los resultados de búsqueda y después Eliminar servicio.
    3. En el cuadro de diálogo de confirmación, en el cuadro de texto TYPE THE DATABASE MIGRATION SERVICE NAME, especifique el nombre del servicio y seleccione Eliminar.

Procedimientos recomendados de migración

Para llevar a cabo una migración, tenga en cuenta los siguientes procedimientos recomendados.

  • Como parte de la detección y evaluación, tome la SKU del servidor, el uso de CPU, el almacenamiento, los tamaños de base de datos y el uso de extensiones como algunos de los datos críticos que le ayudarán con las migraciones.
  • Planee el modo de migración para cada base de datos. Para realizar migraciones simples y usar bases de datos más pequeñas, considere el modo sin conexión.
  • Haga migraciones de prueba antes de la migración en la fase de producción:
    • Las migraciones de prueba son importantes para asegurarse de cubrir todos los aspectos de la migración de la base de datos, incluidas las pruebas de aplicaciones. Si va a migrar a una versión de MySQL superior, pruebe la compatibilidad de la aplicación.
    • Una vez completadas las pruebas, puede migrar las bases de datos de producción. En este momento, tiene que finalizar el día y la hora de la migración de producción. Idealmente, en este momento se usará poco la aplicación. Todas las partes interesadas que tengan que participar tienen que estar disponibles y listas. Tenga en cuenta que la migración de producción requiere una supervisión cercana.
  • Redirija todas las aplicaciones dependientes para acceder a la nueva base de datos principal y abra las aplicaciones para su uso en la fase de producción.
  • Después de que la aplicación comience a ejecutarse en el servidor flexible de destino, supervise con atención el rendimiento de la base de datos para ver si tiene que ajustar el rendimiento.

Pasos siguientes