Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La migration des données est essentielle pour déplacer des bases de données MySQL depuis des environnements locaux vers Azure Database pour MySQL. Cet article se concentre sur l’utilisation de MySQL Workbench, un outil puissant qui simplifie la migration. À l’aide de MySQL Workbench, vous pouvez transférer efficacement vos données tout en réduisant les temps d’arrêt, et en vérifiant l’intégrité des données. Ce guide vous accompagne pas à pas dans la configuration et l’exécution d’une migration des données à l’aide de MySQL Workbench, en mettant en évidence les meilleures pratiques et les pièges potentiels à éviter. Que vous soyez un administrateur de base de données chevronné ou un novice dans le domaine de la migration de base de données, cet article fournit les insights et les techniques nécessaires pour effectuer une migration transparente et réussie vers Azure.
Prérequis
Migrer MySQL local vers Azure Database pour MySQL : migration des données
Programme d’installation
Suivez toutes les étapes du guide d’installation pour créer un environnement permettant de prendre en charge les étapes suivantes.
Configurer les paramètres du serveur (Source)
Selon le type de migration que vous avez choisi (hors connexion ou en ligne), vous souhaitez évaluer si vous allez modifier les paramètres du serveur pour prendre en charge une sortie rapide des données. Si vous effectuez l’opération en ligne, il n’est peut-être pas nécessaire de changer les paramètres du serveur, car vous allez probablement être amené à exécuter une réplication binlog
, et les données se synchroniseront d’elles-mêmes. Toutefois, si vous effectuez une migration hors connexion, une fois que vous avez arrêté le trafic de l’application, vous pouvez changer les paramètres du serveur pour passer de la prise en charge de la charge de travail à la prise en charge de l’exportation.
Configurer les paramètres du serveur (Cible)
Passez en revue les paramètres du serveur avant de commencer le processus d’importation dans Azure Database pour MySQL. Les paramètres du serveur peuvent être récupérés et définis à l’aide du portail Azure ou en appelant les cmdlets Azure PowerShell pour MySQL afin d’effectuer les modifications.
Exécutez le script PowerShell suivant pour obtenir tous les paramètres :
\[Net.ServicePointManager\]::SecurityProtocol = \[Net.SecurityProtocolType\]::Tls
12
Install-Module -Name Az.MySql
Connect-AzAccount
$rgName = "{RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Get-AzMySqlConfiguration -ResourceGroupName $rgName -ServerName $serverName
Pour faire de même avec l’outil mysql, téléchargez la certification racine de l’autorité de certification dans c:\temp (créez ce répertoire).
Notes
Le certificat est susceptible d’être modifié. Pour obtenir les informations les plus récentes concernant le certificat, consultez Configuration de la connectivité SSL dans votre application pour se connecter en toute sécurité à Azure Database pour MySQL.
Exécutez le script suivant dans une invite de commandes en veillant à mettre à jour les jetons :
mysql --host {servername}.mysql.database.azure.com --database mysql --user
{u sername}@{servername} -p --ssl-ca=c:\\temp\\BaltimoreCyberTrustRoot.crt.cer
-A -e "SHOW GLOBAL VARIABLES;" \> c:\\temp\\settings\_azure.txt
Dans le nouveau fichier settings_azure.txt, vous pouvez voir les paramètres par défaut du serveur Azure Database pour MySQL, comme indiqué dans l’annexe.
Pour prendre en charge la migration, définissez les paramètres de l’instance MySQL cible de façon à permettre une entrée plus rapide. Les paramètres de serveur suivants doivent être définis avant de commencer la migration des données :
max\_allowed\_packet
: Définissez le paramètre sur1073741824
(autrement dit, 1 Go) ou la plus grande taille d’une ligne dans la base de données afin d’éviter tout problème de dépassement dû à de longues lignes. Pensez à ajuster ce paramètre s’il existe des lignes BLOB volumineuses qui doivent être extraites (ou lues).innodb\_buffer\_pool\_size
: effectuez un scale-up du serveur vers la référence SKU 32 vCores à mémoire optimisée à partir du niveau tarifaire du portail pendant la migration afin d’augmenter la valeur d’innodb_buffer_pool_size. La valeur Innodb_buffer_pool_size peut être augmentée uniquement en effectuant un scale-up du calcul pour le serveur Azure Database pour MySQL. Consultez Paramètres de serveur dans Azure Database pour MySQL pour connaître la valeur maximale du niveau. La valeur maximale dans un système 32 vCores à mémoire optimisée est132070244352
.innodb\_io\_capacity
&innodb\_io\_capacity\_max
- remplacez le paramètre par9000
pour améliorer l’utilisation des E/S et optimiser la vitesse de migration.max\_connections
: si vous utilisez un outil qui génère plusieurs threads pour augmenter le débit, augmentez le nombre de connexions pour prendre en charge cet outil. La valeur par défaut est151
et la valeur maximale5000
.Notes
Soyez vigilant lorsque vous effectuez une mise à l’échelle. Certaines opérations ne peuvent pas être annulées, comme la mise à l’échelle du stockage.
Ces paramètres peuvent être mis à jour à l’aide des cmdlets Azure PowerShell ci-dessous :
Install-Module -Name Az.MySql
$rgName = " {RESOURCE\_GROUP\_NAME}";
$serverName = "{SERVER\_NAME}";
Select-AzSubscription -Subscription "{SUBSCRIPTION\_ID}"
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 1073741824
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName
$rgna me -ServerName $serverName -Value 9000
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 9000
\#required if You've functions
Update-AzMySqlConfiguration -Name log\_bin\_trust\_function\_creators
-ResourceGr oupName $rgname -ServerName $serverName -Value ON
Données
Choix de l’outil
Une fois que les objets de base de données et les utilisateurs du système source ont été migrés, la migration peut commencer. Les bases de données fonctionnant sur MySQL version 8.0 ne peuvent pas utiliser Azure DMS pour migrer la charge de travail. Les utilisateurs de la migration doivent plutôt utiliser MySQL Workbench.
Étapes d’importation et d’exportation manuelles
Ouvrez MySQL Workbench et connectez-vous en tant qu’utilisateur racine de la base de données locale.
Sous **Gestion*, sélectionnez **Exportation de données**. Sélectionnez le schéma reg_app.
Dans Objets à exporter, sélectionnez Vider les procédures stockées et les fonctions, Vider les événements et Vider les déclencheurs.
Sous Options d’exportation, sélectionnez Exporter vers un fichier autonome.
Cochez également la case Inclure la création de schéma. Reportez-vous à l’image ci-dessous pour observer la configuration correcte de mysqldump.
Test
Si l’une de ces options n’est pas disponible, elle est probablement cachée par le volet Sortie. Il suffit de modifier la disposition de l’éditeur.
Test
Sélectionnez l’onglet Progression de l’exportation.
Sélectionnez Démarrer l’exportation. Notez que MySQL Workbench envoie des appels à l’outil
mysqldump
.Ouvrez le script d’exportation nouvellement créé.
Recherchez toutes les instructions
DEFINER
et modifiez-les pour un utilisateur valide ou supprimez-les entièrement.
Notes
Pour ce faire, vous pouvez transmettre --skip-definer
dans la commande mysqldump. Cette option n’est pas disponible dans MySQL Workbench ; les lignes doivent donc être supprimées manuellement dans les commandes d’exportation. Bien que nous indiquions ici quatre éléments à supprimer, d’autres éléments peuvent échouer lors de la migration d’une version de MySQL à une autre (par exemple, les nouveaux mots réservés).
Recherchez les instructions
SET GLOBAL
et modifiez-les pour un utilisateur valide ou supprimez-les entièrement.Vérifiez que
sql\_mode
n’est pas défini surNO\_AUTO\_CREATE\_USER
.Supprimez la fonction
hello\_world
.Dans MySQL Workbench, créez une connexion à Azure Database pour MySQL.
Pour « Nom d’hôte », entrez le DNS complet du serveur (par exemple :
servername.mysql.database.azure.com
).Entrez le nom d’utilisateur (par exemple :
sqlroot@servername
).Sélectionnez l’onglet SSL.
Pour le fichier de l’autorité de certification SSL, accédez au fichier de clé BaltimoreCyberTrustRoot.crt.cer.
Sélectionnez Tester la connexion et vérifiez que la connexion s’établit correctement.
Cliquez sur OK.
La boîte de dialogue de connexion MySQL s’affiche.
Sélectionnez Fichier->Ouvrir un script SQL.
Accédez au fichier dump et sélectionnez Ouvrir.
Sélectionnez Exécuter.
Mettre à jour les applications pour prendre en charge SSL
Passez à l’API de serveur Java dans Visual Studio Code.
Ouvrez le fichier launch.json.
Mettez à jour DB_CONNECTION_URL avec
jdbc:mysql://serverDNSname:3306/reg\_app?useUnicode=true\&useJDBCCompliantT imezoneShift=true\&useLegacyDatetimeCode=false\&serverTimezone=UTC\&verifySe rverCertificate=true\&useSSL=true\&requireSSL=true\&noAccessToProcedureBodie s=true.
. Prenez note des paramètres SSL supplémentaires.Mettez à jour DB_USER_NAME avec conferenceuser@servername.
Démarrez la configuration de débogage et assurez-vous que l’application fonctionne localement avec la nouvelle base de données.
Restaurer les paramètres du serveur
Les paramètres suivants peuvent être modifiés sur l’instance cible d’Azure Database pour MySQL. Ces paramètres peuvent être définis via le portail Azure ou en utilisant les cmdlets Azure PowerShell pour MySQL.
$rgName = "YourRGName";
$serverName = "servername";
Update-AzMySqlConfiguration -Name max\_allowed\_packet -ResourceGroupName
$rgna me -ServerName $serverName -Value 536870912
Update-AzMySqlConfiguration -Name innodb\_buffer\_pool\_size -ResourceGroupName
$rgname -ServerName $serverName -Value 16106127360
Update-AzMySqlConfiguration -Name innodb\_io\_capacity -ResourceGroupName $rgna
me -ServerName $serverName -Value 200
Update-AzMySqlConfiguration -Name innodb\_io\_capacity\_max -ResourceGroupName
$ rgname -ServerName $serverName -Value 2000
Modifier la chaîne de connexion pour l’API Java
- Utilisez les commandes suivantes pour modifier la chaîne de connexion pour l’API Java App Service.
$rgName = "YourRGName";
$app_name = "servername";
az webapp config appsettings set -g $rgName -n $app_name
--settings DB_CONNECTION_URL={DB_CONNECTION_URL}
Notes
N’oubliez pas que vous pouvez utiliser le portail pour définir la chaîne de connexion.
- Redémarrez l’API App Service.
az webapp restart -g $rgName -n $app\_name
Vous venez de migrer un emplacement local vers Azure Database pour MySQL.