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 realiza 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 (en ambos se ejecuta la versión 5.7) mediante una actividad de migración de DMS.
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. Al seleccionar una tabla para la migración del esquema también se 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 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.
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 obtener una guía paso a paso, vea Inicio rápido: Creación de una instancia de Azure Database for MySQL con Azure Portal.
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 va a realizar la migración 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 van a migrar 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 más información, consulte la documentación de MySQL específica para la versión de "CREATE VIEW STATEMENT"
- Si se van a migrar eventos, el usuario debe tener el privilegio "EVENT".
- Si se van a migrar desencadenadores, el usuario debe tener el privilegio "TRIGGER".
- Si se van a migrar 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
- El usuario que haga la migración necesitará los siguientes permisos:
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.
Antes de crear la primera instancia de DMS, inicie sesión en Azure Portal y, a continuación, busque y seleccione Suscripciones.
Seleccione la suscripción en la que quiere crear la instancia de Azure Database Migration Service y después seleccione Proveedores de recursos.
Busque el término "Migración" y, después, seleccione Registrar en Microsoft.DataMigration.
Creación de una instancia de Database Migration Service (DMS)
En Azure Portal, seleccione + Crear un recurso, busque el término "Azure Database Migration Service" y, después, seleccione Azure Database Migration Service en la lista desplegable.
En la pantalla Azure Database Migration Service, seleccione Crear.
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.
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.
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.
A la derecha del plan de tarifa, seleccione Configure tier.
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.
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.
En la página Create Migration Service, seleccione Next : Networking>>.
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.
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.
Si desea agregar etiquetas al servicio, primero seleccione Siguiente: Etiquetas para avanzar primero a la pestaña Etiquetas. Agregar etiquetas al servicio es opcional.
Vaya a la pestaña Review + create, revise las configuraciones, consulte los términos y seleccione 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.
Haga clic en Go to resource (Ir al recurso).
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.
En Azure Portal, seleccione Todos los servicios, busque Azure Database Migration Service y, luego, elija Azure Database Migration Services.
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.
En la página Nuevo proyecto de migración, especifique un nombre para el proyecto. En el cuadro de selección Tipo de servidor de origen, seleccione Azure Database for MySQL: servidor único y, en el cuadro selección Tipo de servidor de destino, seleccione Azure Database for MySQL; en el cuadro de selección Tipo de actividad de migración, seleccione Migración sin conexión y, después, seleccione Crear y ejecutar la actividad.
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.
Configuración del proyecto de migración
Para configurar el proyecto de migración de DMS, los pasos que se indican.
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.
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, vea Migración de datos de MySQL a Azure Database for MySQL: instantánea coherente de MySQL.
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.
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.
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.
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.
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.
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.
DMS valida las entradas y, si la validación es correcta, podrá iniciar la migración.
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 Configurar las opciones de migración si intenta solucionar errores con las migraciones.
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.
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
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.
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.
Seleccione Actualizar para actualizar la pantalla hasta que el estado de la migración sea Completado.
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:
- En Azure Portal, seleccione Todos los servicios, busque Azure Database Migration Service y, luego, elija Azure Database Migration Services.
- Seleccione la instancia del servicio de migración en los resultados de búsqueda y después Eliminar servicio.
- 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.