Migración de bases de datos grandes a Azure Database for MySQL mediante mydumper/myloader
Azure Database for MySQL es un servicio administrado que se usa para ejecutar, administrar y escalar bases de datos MySQL de alta disponibilidad en la nube. Para migrar bases de datos MySQL de más de 1 TB a Azure Database for MySQL, considere la posibilidad de usar herramientas de la comunidad como mydumper/myloader, las cuales proporcionan las siguientes ventajas:
- Paralelismo, para ayudar a reducir el tiempo de migración.
- Mejor rendimiento, evitando rutinas de conversión de juegos de caracteres costosas.
- Formato de salida, con archivos independientes para tablas, metadatos, etc., lo cual facilita la visualización y el análisis de datos. Coherencia, manteniendo la instantánea en todos los subprocesos.
- Posiciones de registro principal y de réplica precisas.
- Administración sencilla, ya que admiten expresiones regulares compatibles con Perl (PCRE) para especificar las inclusiones y exclusiones de bases de datos y tablas.
- El esquema y los datos van juntos. No es necesario administrarlos por separado como en otras herramientas de migración lógicas.
En este inicio rápido se muestra cómo instalar, realizar copias de seguridad y restaurar una base de datos MySQL mediante mydumper/myloader.
Requisitos previos
Antes de empezar a migrar la base de datos MySQL, debe hacer lo siguiente:
Cree un servidor de Azure Database for MySQL mediante Azure Portal.
Cree una máquina virtual de Azure que ejecute Linux mediante Azure Portal (preferiblemente Ubuntu).
Nota
Antes de instalar las herramientas, tenga en cuenta los siguientes puntos:
- Si el origen es local y tiene una conexión con gran ancho de banda a Azure (mediante ExpressRoute), considere la posibilidad de instalar la herramienta en una máquina virtual de Azure.
- Si tiene alguna dificultad en el ancho de banda entre el origen y el destino, considere la posibilidad de instalar mydumper cerca del origen y myloader cerca del servidor de destino. Puede usar herramientas como Azcopy para trasladar los datos desde el entorno local u otras soluciones en la nube a Azure.
- Si el origen es local y tiene una conexión con gran ancho de banda a Azure (mediante ExpressRoute), considere la posibilidad de instalar la herramienta en una máquina virtual de Azure.
Instale el cliente mysql y realice los pasos siguientes:
- Actualice el índice del paquete en la máquina virtual de Azure que ejecuta Linux mediante la ejecución del siguiente comando:
sudo apt update
- Para instalar el paquete del cliente mysql, ejecute el comando siguiente:
sudo apt install mysql-client
Instalación de mydumper/myloader
Para instalar mydumper/myloader, siga estos pasos.
En función de la distribución del sistema operativo, descargue el paquete adecuado para mydumper/myloader y ejecute el siguiente comando:
wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Nota
$(lsb_release -cs) le ayuda a identificar la distribución.
Para instalar el paquete .deb para mydumper, ejecute el siguiente comando:
sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Sugerencia
El comando que use para instalar el paquete variará en función de la distribución de Linux que tenga, ya que los instaladores son diferentes. Mydumper/myloader está disponible para las siguientes distribuciones: Fedora, RedHat, Ubuntu, Debian, openSUSE y MacOSX. Para más información, consulte Instalación de mydumper .
Creación de una copia de seguridad mediante mydumper
Para crear una copia de seguridad mediante mydumper, ejecute el siguiente comando:
mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl --regex '^(<Db_name>\.)' -L mydumper-logs.txt
Este comando emplea las variables siguientes:
--host: El host al que se desea conectar
-user: Nombre de usuario con los privilegios necesarios
-password: Contraseña del usuario
-rows: Intente dividir las tablas en fragmentos con este número de filas
-outputdir: Directorio en el que se van a volcar los archivos de salida
-regex: Expresión regular para la coincidencia de base de datos.
-trx-consistency-only: Solo coherencia transaccional
-threads: Número de subprocesos que se van a usar, el valor predeterminado es 4. Se recomienda usar un valor igual a 2 veces el valor del núcleo virtual del equipo.
Nota
Para más información sobre otras opciones que se pueden usar con mydumper, ejecute el siguiente comando: mydumper --help. Para más información, consulte la documentación de mydumper\myloader.
Para volcar varias bases de datos en paralelo, puede modificar la variable regex como se muestra en el ejemplo: regex '^(DbName1.|DbName2.)
Restauración de la base de datos mediante myloader
Para restaurar la base de datos de la que ha hecho una copia de seguridad mediante mydumper, ejecute el siguiente comando:
myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
Este comando emplea las variables siguientes:
- --host: El host al que se desea conectar
- -user: Nombre de usuario con los privilegios necesarios
- -password: Contraseña del usuario
- -directory: Ubicación en la que se ha almacenado la copia de seguridad.
- -queries-per-transaction: Se recomienda establecer en un valor no superior a 500
- -threads: Número de subprocesos que se van a usar, el valor predeterminado es 4. Se recomienda usar un valor igual a 2 veces el valor del núcleo virtual del equipo.
Sugerencia
Para más información sobre otras opciones que se pueden usar con myloader, ejecute el siguiente comando: myloader --help.
Una vez restaurada la base de datos, siempre se recomienda validar la coherencia de los datos entre las bases de datos de origen y de destino.
Nota:
Envíe cualquier problema o comentario relacionado con las herramientas mydumper/myloader aquí .