Enfoques para la migración

Completado

Puede adoptar muchos enfoques diferentes para la migración de bases de datos, como la migración en línea o sin conexión, la migración de copias de seguridad y restauración, o la migración con código SQL personalizado o scripts. Cada enfoque es más adecuado para determinados escenarios empresariales.

En la empresa start-up, por ejemplo, la base de datos de comunicación de proveedores es crítica y desea probar y migrar sin que se produzca ninguna interrupción del servicio para los usuarios. Este departamento de la empresa opera ininterrumpidamente y hay pocos tiempos de inactividad predecibles durante los que puede dejar la base de datos sin conexión. Por el contrario, el sistema de diseño asistido por PC (CAD) solo se utiliza durante la semana, por lo que puede dejarlo sin conexión durante un fin de semana y migrarlo a Azure.

Aquí encontrará información sobre los enfoques, las técnicas y las herramientas que puede seleccionar para ejecutar la migración.

Momento en el que usar la exportación e importación

Las técnicas de exportación e importación le permiten controlar los datos y el esquema que se mueven en la migración. Use herramientas de exportación e importación si desea seleccionar los datos que se van a migrar a la nueva base de datos y, posiblemente, limpiar o modificar los datos durante la migración.

Considere la posibilidad de usar técnicas de exportación e importación:

  • Si desea elegir un subconjunto de las tablas de la base de datos local para migrar a la base de datos en la nube.

  • Si desea migrar objetos de base de datos, como restricciones, vistas, funciones, procedimientos y desencadenadores, y controlar cómo se configuran estos objetos en la base de datos en la nube.

  • Cuando desee importar datos desde orígenes externos que no sean MySQL, MariaDB ni PostgreSQL.

Por ejemplo, puede considerar la posibilidad de exportar e importar en estos escenarios:

  • Realice una migración por etapas en la que la carga de trabajo de marketing se migra a la nube y se prueba antes que la carga de trabajo de soporte de ventas. Ambas cargas de trabajo usan tablas de la base de datos SalesDB en el sistema local. Desea migrar las tablas de marketing solo en la primera fase del proyecto y las tablas de ventas solo en la segunda fase.

  • Los datos locales son antiguos y contienen una combinación de datos relevantes e irrelevantes para la empresa actual. Desea tener la oportunidad de quitar los datos antiguos y considerar un esquema de base de datos más simplificado.

  • Tiene una hoja de cálculo grande que contiene datos sobre los productos. Desea migrar estos datos a la base de datos en la nube.

Planeamiento de una migración de exportación e importación

La ventaja de usar la importación y exportación es el nivel de control adicional que tiene sobre los datos que se van a migrar. Sin embargo, una desventaja es que debe planear más detenidamente para asegurarse de que se incluyen todos los objetos que necesita.

Asegúrese de que sabe cómo se van a migrar los siguientes objetos:

  • El esquema de base de datos.
  • Restricciones que incluyen claves principales, claves externas e índices.
  • Vistas, funciones, procedimientos y desencadenadores.
  • Cuentas de usuario y permisos.

Exportación e importación de MySQL y MariaDB

Puede usar scripts SQL para realizar la exportación e importación selectivas desde una base de datos a otra. Sin embargo, si la base de datos local está en MySQL o MariaDB, hay varias herramientas disponibles como ayuda, entre las que se incluyen:

  • MySQL Workbench. Se trata de una conocida herramienta de diseño de bases de datos con una interfaz gráfica de usuario (GUI) desarrollada por Oracle Corporation. Incluye una herramienta Exportación de datos con opciones flexibles de selección de datos.

  • Toad Edge. Se trata de un conjunto de herramientas competitivo desarrollado por Quest. Se usa para exportar e importar datos desde las bases de datos MySQL y PostgreSQL.

  • Navicat. Esta herramienta de GUI de administración de bases de datos también es compatible con las bases de datos MariaDB.

  • mysqlimport. Esta herramienta de línea de comandos puede importar datos desde archivos de texto.

Importante

Azure Database for MySQL y Azure Database for MariaDB solo admiten el motor de almacenamiento InnoDB. Si tiene tablas que usan otros motores, como el motor MyISAM, debe convertirlas a InnoDB antes de migrar a Azure.

Importación y exportación de PostgreSQL

PostgreSQL proporciona las siguientes herramientas que se usan para exportar e importar datos:

  • pgAdmin. Se trata de una utilidad de GUI para administradores de PostgreSQL. Proporciona una interfaz para exportar e importar datos.

  • pg_dump. Se trata de una herramienta de línea de comandos que se usa para exportar una base de datos en varios formatos, incluidas las pruebas. Puede editar los archivos .sql resultantes antes de importarlos con la utilidad psql.

  • Toad Edge. Se trata de la misma utilidad que se usa con MySQL.

Copia de seguridad y restauración

Las operaciones de copia de seguridad y restauración normalmente se realizan para proteger una base de datos frente a desastres. Se realiza y guarda una copia exacta de la base de datos. Si un desastre destruye la copia de trabajo, se restaura la copia de seguridad y se puede reanudar la actividad empresarial habitual.

Al restaurar en una ubicación diferente, se usa una copia de seguridad para migrar la base de datos completa a otra ubicación, como una base de datos en la nube.

Momento en el que usar la copia de seguridad y restauración

Las herramientas de copia de seguridad hacen una copia sencilla y precisa de la base de datos. Al restaurar en la base de datos en la nube, obtiene exactamente los mismos datos y el mismo esquema que tenía en el sistema local. Use la copia de seguridad y restauración para migrar una base de datos:

  • Cuando desea migrar una base de datos completa o un conjunto de bases de datos en una sola operación.

  • Cuando no es necesario realizar ninguna modificación en los datos, el esquema u otros objetos de base de datos durante la migración.

Podría considerar la posibilidad de usar la copia de seguridad y restauración para realizar una migración en casos como estos:

  • Tiene un único sistema de base de datos que desea migrar mediante lift-and-shift a la nube con la mínima modificación posible.

  • Desea realizar una migración por etapas en un sistema que tiene varias bases de datos. Cada carga de trabajo es compatible con una base de datos completa.

Cuando restaure una base de datos a partir de un archivo de copia de seguridad en una ubicación en la nube, tenga en cuenta la cantidad de datos que se deben enviar a través de la red a la base de datos en la nube. Para optimizar esta transferencia de datos, copie la base de datos de la que se ha realizado una copia de seguridad en una máquina virtual de la misma región que la base de datos de destino y restáurela desde allí. Esta restauración es más rápida que el uso de un archivo de copia de seguridad local y es menos probable que cause contención del ancho de banda de red.

Planeamiento de una copia de seguridad y restauración en MySQL y MariaDB

Para realizar una copia de seguridad de una base de datos en un servidor local, use la herramienta mysqldump en la línea de comandos. Crea un archivo .sql que se restaura en la base de datos en la nube pasándolo al comando mysql como un script. Si prefiere una herramienta de interfaz gráfica de usuario, elija la aplicación PHPMyAdmin o MySQL Workbench. Estas herramientas de interfaz gráfica de usuario pueden realizar la copia de seguridad y restauración de los datos.

Recuerde que Azure Database for MySQL y Azure Database for MariaDB solo admiten el motor InnoDB. Asegúrese de convertir todas las tablas a InnoDB antes de ejecutar la copia de seguridad.

Para evitar problemas de compatibilidad, compruebe que el número de versión de MySQL o MariaDB usado en la nube coincide con el número de versión del servidor de base de datos local. Azure Database for MySQL es compatible con las versiones 5.6, 5.7 y 8.0. Azure Database for MariaDB es compatible con las versiones 10.2 y 10.3. Si el servidor local usa una versión anterior, considere la posibilidad de actualizar primero a una de estas versiones y solucione los problemas de forma local antes de migrar a la nube.

Planeamiento de una copia de seguridad y restauración en PostgreSQL

Las herramientas de copia de seguridad y restauración de línea de comandos equivalentes en PostgreSQL son pg_dump y pg_restore. Para una herramienta de copia de seguridad y restauración de interfaz gráfica de usuario, use Toad Edge.

Código de aplicación personalizado

Si tiene muchos requisitos de transformación de datos o desea realizar una migración inusual, considere la posibilidad de escribir su propio código personalizado para trasladar los datos de una base de datos MySQL, PostgreSQL o MariaDB local a la nube.

El código personalizado puede adoptar muchas formas. El lenguaje y el marco que elija dependerán principalmente de la experiencia del equipo de desarrollo:

  • Los scripts SQL generados a partir de la base de datos y modificados o desarrollados desde cero.
  • Código compilado desde un marco de desarrollo como .NET o Java.
  • Scripts en PHP o Node.js.
  • Scripts de Shell para Bash o PowerShell.

El enfoque de código personalizado le permite ser extremadamente flexible. Puede personalizar el modo en que se filtran, agregan y transforman los datos, y puede migrar a varios destinos o combinar datos de varios orígenes. Use este enfoque si tiene requisitos que no se pueden cumplir con una herramienta de copia de seguridad o exportación lista para usar.

El inconveniente de este enfoque es que es necesario invertir más tiempo en el desarrollo. Para que el código personalizado migre todos los datos correctamente, se debe probar exhaustivamente antes de que se ejecute en datos reales. Esta tarea requiere un equipo de desarrolladores y evaluadores cualificados y, a menudo, aumenta el presupuesto del proyecto. Si está pensando en escribir código de migración personalizado, no caiga en la tentación de subestimar el tiempo y el esfuerzo necesarios para crear código confiable.

Azure Database Migration Service

Azure incluye un servicio flexible denominado Azure Database Migration Service (DMS) que se usa para realizar migraciones en línea sin problemas desde varios orígenes de datos a plataformas de datos de Azure. Estas plataformas incluyen Azure Database for MySQL, Azure Database for MariaDB y Azure Database for PostgreSQL.

Considere la posibilidad de usar Azure DMS siempre que quiera realizar una migración de bases de datos en línea a Azure.

Migración inicial

Para realizar una migración con DMS, realice estas tareas:

  1. Cree una base de datos de destino en Azure en la plataforma de su elección.
  2. Cree un proyecto de migración de datos de Azure Database Migration Service (DMS).
  3. Genere el esquema a partir de las bases de datos de origen locales. Si utiliza MySQL, puede generar un esquema con sqldump. Si la base de datos de origen es PostgreSQL, use pg_dump.
  4. Cree una base de datos vacía para que actúe como destino de la migración.
  5. Aplique el esquema a la base de datos de destino.
  6. Configure los detalles de conexión de las bases de datos de origen y destino en un proyecto de migración de DMS.
  7. Ejecute el proyecto de migración de DMS. El proyecto transfiere los datos y genera un informe.
  8. Revise el informe y corrija todos los problemas identificados.

Migraciones en línea

Azure DMS es una buena herramienta que se puede usar para migraciones en línea, donde la base de datos original sigue estando disponible mientras se ejecuta la migración. Los usuarios continúan realizando cambios en los datos de la base de datos de origen. Azure DMS usa la replicación para sincronizar estos cambios con la base de datos migrada. Una vez completada la migración, vuelva a configurar las aplicaciones de usuario para que se conecten a la base de datos migrada.

Migración de MySQL o MariaDB a Azure SQL Database

Si quiere trasladar una base de datos hospedada de forma local en un servidor de base de datos MySQL a la nube de Azure, y no necesita la base de datos en la nube para ejecutar MySQL, considere la posibilidad de migrar a Azure SQL Database. Azure SQL Database es una implementación de PaaS del motor de base de datos de SQL Server de Microsoft líder en el sector. Incluye disponibilidad, escalabilidad y seguridad de nivel empresarial, y es fácil de supervisar y administrar.

Del mismo modo, si el servidor de base de datos local ejecuta MariaDB, puede considerar la posibilidad de migrar a Azure SQL Database. El proceso es muy similar porque MariaDB es una bifurcación de MySQL.

Azure SQL Database es más completo que Azure Database for MySQL y Azure Database for MariaDB.

Nota:

Puede que tenga que modificar las aplicaciones que se conectan a la base de datos migrada, ya que Azure SQL Database usa tipos de datos diferentes, objetos de base de datos diferentes y una API diferente repecto a MySQL y MariaDB. Consulte a los desarrolladores para determinar cuánto trabajo se requiere para portar una aplicación cliente desde una base de datos MySQL o MariaDB local a una base de datos de Azure SQL en la nube.

SQL Server Migration Assistant para MySQL

Si decide migrar de MySQL a Azure SQL Database, puede usar una herramienta especializada: SQL Server Migration Assistant para MySQL. Esta herramienta de interfaz gráfica de usuario se conecta a una base de datos MySQL de origen y a una base de datos SQL Server, que puede ser una base de datos del servicio Azure SQL Database.

Una vez conectada, el asistente copia el esquema completo en Azure SQL Database y convierte todos los tipos de datos en sus equivalentes de SQL Server. También migra vistas, procedimientos, desencadenadores y otros objetos. Después, puede empezar a migrar los datos de MySQL a Azure SQL Database.

Nota:

SQL Server Migration Assistant para MySQL no se ha probado para migrar bases de datos MariaDB a Azure SQL Database.