Migrer des bases de données volumineuses vers Azure Database pour MySQL avec mydumper/myloader
Azure Database pour MySQL est un service géré qui vous permet d’exécuter, de gérer et de mettre à l’échelle des bases de données MySQL hautement disponibles dans le cloud. Pour migrer des bases de données MySQL d’une taille supérieure à 1 To vers Azure Database pour MySQL, envisagez d’utiliser des outils de la communauté comme mydumper/myloader, qui offrent les avantages suivants :
- Le parallélisme, pour aider à réduire la durée de la migration.
- De meilleures performances, en évitant les routines de conversion des jeux de caractères consommatrices de ressources.
- Un format de sortie avec des fichiers distincts pour les tables, les métadonnées, etc. qui facilite la visualisation et l’analyse des données. La cohérence, en maintenant la capture instantanée sur tous les threads.
- Des positions précises des journaux de la base de données principale et du réplica.
- La facilité de gestion, car ils prennent en charge les expressions PCRE (Perl Compatible Regular Expression) pour spécifier les inclusions et les exclusions de la base de données et des tables.
- Le schéma et les données sont ensemble. Vous n’avez pas besoin de les gérer séparément, comme c’est le cas avec d’autres outils de migration logique.
Ce guide de démarrage rapide vous montre comment installer, sauvegarder et restaurer une base de données MySQL en utilisant mydumper/myloader.
Prérequis
Avant de commencer la migration de votre base de données MySQL, vous devez :
Créer un serveur Azure Database pour MySQL en utilisant le portail Azure.
Créer une machine virtuelle Azure exécutant Linux (de préférence Ubuntu) en utilisant le portail Azure.
Notes
Avant d’installer les outils, tenez compte des points suivants :
- Si votre source est locale et qu’elle a une connexion à Azure avec une bande passante élevée (utilisant ExpressRoute), envisagez d’installer l’outil sur une machine virtuelle Azure.
- Si la bande passante entre la source et la cible est problématique, envisagez d’installer mydumper près de la source et myloader près du serveur cible. Vous pouvez utiliser les outils Azcopy pour déplacer les données d’environnements locaux ou d’autres solutions cloud vers Azure.
- Si votre source est locale et qu’elle a une connexion à Azure avec une bande passante élevée (utilisant ExpressRoute), envisagez d’installer l’outil sur une machine virtuelle Azure.
Installez le client MySQL en effectuant les étapes suivantes :
- Mettez à jour l’index du package sur la machine virtuelle Azure exécutant Linux avec la commande suivante :
sudo apt update
- Installez le package client mysql en exécutant la commande suivante :
sudo apt install mysql-client
Installer mydumper/myloader
Pour installer mydumper/myloader, effectuez les étapes suivantes.
En fonction de la distribution de votre système d’exploitation, téléchargez le package approprié pour mydumper/myloader en exécutant la commande suivante :
wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Notes
$(lsb_release -cs) permet d’identifier votre distribution.
Pour installer le package .deb pour mydumper, exécutez la commande suivante :
sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
Conseil
La commande que vous utilisez pour installer le package varie en fonction de votre distribution Linux, car les programmes d’installation sont différents. mydumper/myloader est disponible pour les distributions suivantes : Fedora, RedHat, Ubuntu, Debian, openSUSE et MacOSX. Pour plus d’informations, consultez Comment installer mydumper .
Créer une sauvegarde en utilisant mydumper
Pour créer une sauvegarde en utilisant mydumper, exécutez la commande suivante :
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
Cet exemple utilise les variables suivantes :
-host : hôte auquel se connecter
-user : nom d’utilisateur avec les privilèges nécessaires
-password : mot de passe utilisateur
-rows : essayer de fractionner les tables en segments de ce nombre de lignes
-outputdir : répertoire où placer les fichiers de sortie
-regex : expression régulière pour la correspondance de la base de données.
-trx-consistency-only : cohérence transactionnelle uniquement
-threads : nombre de threads à utiliser, par défaut 4. Il est recommandé d’utiliser une valeur égale à 2 fois le nombre de vCores de l’ordinateur.
Notes
Pour plus d’informations sur les autres options que vous pouvez utiliser avec mydumper, exécutez la commande suivante : mydumper --help. Pour plus d’informations, consultez la documentation de mydumper\myloader
Pour produire une image mémoire de plusieurs bases de données en parallèle, vous pouvez modifier la variable regex comme indiqué dans l’exemple : regex '^(DbName1.|DbName2.)
Restaurer votre base de données en utilisant myloader
Pour restaurer la base de données que vous avez sauvegardée en utilisant mydumper, exécutez la commande suivante :
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
Cet exemple utilise les variables suivantes :
- -host : hôte auquel se connecter
- -user : nom d’utilisateur avec les privilèges nécessaires
- -password : mot de passe utilisateur
- -directory : emplacement où la sauvegarde est stockée.
- -queries-per-transaction : paramètre recommandé de la valeur doit être inférieur ou égal à 500
- -threads : nombre de threads à utiliser, par défaut 4. Il est recommandé d’utiliser une valeur égale à 2 fois le nombre de vCores de l’ordinateur.
Conseil
Pour plus d’informations sur les autres options que vous pouvez utiliser avec myloader, exécutez la commande suivante : myloader --help
Une fois la base de données restaurée, il est toujours recommandé de vérifier la cohérence des données entre les bases de données source et cible.
Remarque
Soumettez les problèmes ou un feedback concernant les outils mydumper/myloader ici .