Migración de la base de datos MySQL local a Azure

Completado

Una vez que una empresa toma la decisión de migrar a Azure Database for MySQL, el paso siguiente es planear la migración de las bases de datos locales y elegir las herramientas para trasladar los datos.

Tras explorar cómo Azure Database for MySQL admite y escala MySQL en Azure, ahora deberá considerar cómo migrar las bases de datos locales existentes.

En esta unidad, aprenderá a crear una instancia del servicio Azure Database for MySQL mediante Azure Portal. Si necesita crear muchas instancias de este servicio, puede generar un script para el proceso mediante la CLI de Azure.

Creación de una instancia de Azure Database for MySQL mediante el portal

En Azure Portal, seleccione el comando Bases de datos en Azure Marketplace y seleccione Azure Database for MySQL.

Imagen que muestra el elemento Azure Database for MySQL en Azure Marketplace

Escriba los detalles del servicio. Se incluyen los siguientes:

  • Nombre del servidor. Debe ser un nombre único con entre 3 y 63 caracteres, solo letras minúsculas, números y guiones.
  • Origen de datos. Si crea un servidor nuevo para la migración, seleccione Ninguno. La opción Copia de seguridad le permite restaurar una copia de seguridad creada a partir de otra instancia de Azure Database for MySQL en este servicio.
  • Nombre de usuario de administrador. Es el nombre de una cuenta de usuario que se creará con privilegios de administrador. Azure crea algunas cuentas para su propio uso y hay otros nombres que están restringidos; no puede usar azure_superuser, admin, administrator, root, guest ni public.
  • Contraseña. Debe tener entre 8 y 128 caracteres. Debe contener una combinación de letras mayúsculas y minúsculas, números y caracteres no alfanuméricos. Actualmente, Azure Database for MySQL solo admite la autenticación de contraseña y la integración con Microsoft Entra ID todavía no está disponible.
  • Versión. Seleccione la versión correspondiente a la base de datos local que va a migrar.
  • Proceso y almacenamiento. Seleccione Configurar servidor para establecer el plan de tarifa y especifique los recursos que necesita para el servicio. Las opciones se analizaron en la lección 1. Recuerde que, si selecciona el plan de tarifa De uso general o el Optimizado para memoria, podrá escalar y reducir verticalmente el número de núcleos de procesador virtual más adelante. Sin embargo, no se puede disminuir la cantidad de almacenamiento; solo puede aumentar una vez que se haya creado el servidor.

Captura de pantalla en la que se muestra una configuración de ejemplo para Azure Database for MySQL en Azure Portal.

Seleccione Revisar y crear para implementar el servicio. La implementación puede tardar varios minutos.

Una vez que se implemente el servicio, seleccione la opción Seguridad de la conexión y agregue las reglas de firewall adecuadas para permitir que los clientes se conecten, tal como se describe en el tema Conectividad de clientes en la lección 1. También debe seleccionar la opción Permitir el acceso a servicios de Azure.

Creación de una instancia de Azure Database for MySQL mediante la CLI de Azure

Puede crear una instancia de Azure Database for MySQL mediante el comando az mysql server create. La instrucción siguiente muestra un ejemplo que crea una instancia de MySQL. La mayoría de los parámetros se explican por sí solos, a excepción de los siguientes:

  • sku-name. Puede construirlo a partir de una combinación del plan de tarifa (B para Básico, GP para De uso general y MO para Optimizado para memoria), la generación de proceso (Gen4 o Gen5) y el número de núcleos de CPU virtuales. En el ejemplo siguiente, el servidor se crea con el plan de tarifa De uso general, con cuatro núcleos de CPU de la generación de Gen5.
  • storage-size. Se trata de la cantidad de almacenamiento en disco que se necesita, especificada en megabytes. En el ejemplo siguiente, se asignan 10 gigabytes.
az mysql server create \
  --name contoso-MySQL-server \
  --resource-group MySQLrg \
  --admin-user contosoadmin \
  --admin-password 7Hh7*ku5k$$£jhk \
  --sku-name GP_Gen5_4 \
  --storage-size 10240

Realización de migración sin conexión

Una migración sin conexión toma una instantánea de la base de datos de origen en un momento determinado y copia los datos en la base de datos de destino. Cualquier cambio que se haga en los datos de origen una vez que se tome la instantánea no se reflejará en la base de datos de destino.

Tiene al menos dos opciones si desea realizar una migración sin conexión a Azure Database for MySQL:

Exportación e importación

Puede exportar una base de datos MySQL e importarla a Azure Database for MySQL con herramientas como MySQL Workbench. Esto resulta útil en diversos escenarios:

  • Quiere seleccionar qué tablas se van a importar.
  • Quiere seleccionar qué objetos de base de datos se van a exportar e importar, como vistas, procedimientos almacenados, restricciones y funciones.
  • También quiere migrar datos de otros orígenes. Por ejemplo, necesita agregar datos de archivos de texto y usa mysqlimport para agregarlos a la base de datos como tablas.

Puede realizar una exportación e importación con MySQL Workbench. En el menú Servidor, seleccione Exportación de datos o Importación de datos.

Nota:

También puede usar mysqldump para exportar tablas específicas, enumerando los nombres después del nombre de la base de datos.

Para más información, consulte Migración de la base de datos MySQL mediante importación y exportación.

Volcado y restauración

Si quiere trasladar de manera eficaz toda la base de datos, utilice volcado y restauración.

Al usarlos, hay varias consideraciones que se deben tomar en cuenta:

  • Use la opción exclude-triggers para impedir que los desencadenadores se activen durante la restauración.
  • Use la opción single-transaction para volcar toda la base de datos en una sola transacción.
  • Use la opción disable-keys para evitar que las restricciones de clave externa se activen durante el proceso.
  • Use la opción defer-table-indexes para aplazar la creación del índice hasta que se complete la restauración.

Para más información sobre mysqldump, consulte el artículo sobremysqldump, un programa para la copia de seguridad de datos.

Nota:

También puede usar mysqldump para exportar tablas específicas, enumerando los nombres después del nombre de la base de datos.

Azure Database Migration Service (DMS)

Además de las migraciones sin conexión a Azure Database for MySQL, DMS admite migraciones entre regiones, grupos entre recursos y entre suscripciones, por lo que puede seleccionar una región, un grupo de recursos y una suscripción para el servidor de destino que sea diferente de lo especificado para el servidor de origen.

Migración mediante volcado y restauración

Siga estos pasos para migrar una base de datos mediante el enfoque de volcado y restauración.

  1. Exporte los datos a otro archivo con el comando mysqldump:

    mysqldump -h [host name] -u [username] -p[password] [database name] > db_data.sql
    

    En este momento, db_data.sql es un script SQL que puede modificar con un editor de texto.

  2. Cree la base de datos de destino en Azure Database for MySQL. Para ello, use la CLI de Azure:

    az mysql db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group]
    
  3. Importe los datos a la base de datos de destino con el comando mysql:

    mysql -h [host name] -u [username] -p[password] [database name] < db_data.sql
    

Realización de la migración en línea

DMS también admite la migración en línea a Azure Database for MySQL. Para la migración en línea, se recomienda seleccionar Proceso de 16 núcleos virtuales de uso general para el servidor flexible de destino para migraciones más rápidas. Vuelva a escalar al tamaño de proceso deseado para el servidor de destino una vez completada la migración, en función de 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

Para más información sobre la migración en línea a Azure Database for MySQL, consulte Tutorial: Migración de Azure Database for MySQL: servidor único a servidor flexible en línea mediante DMS a través de Azure Portal.