Mise à niveau de la version principale dans Azure Database pour MySQL - Serveur flexible
S’APPLIQUE À : Azure Database pour MySQL – Serveur flexible
Notes
Cet article contient des références au terme esclave, un terme que Microsoft n’utilise plus. Quand le terme sera supprimé du logiciel, nous le supprimerons de cet article.
Cet article explique comment mettre à niveau votre version principale De MySQL sur place sur un serveur flexible Azure Database pour MySQL. Cette fonctionnalité permet aux clients d’effectuer des mises à niveau sur place de leurs serveurs MySQL 5.7 vers MySQL 8.0 sans déplacement de données ni modification des chaînes de connexion des applications.
Important
- La durée du temps d’arrêt varie en fonction de la taille de l’instance de la base de données et du nombre de tables qu’elle contient.
- Lors du lancement d’une mise à niveau de version majeure pour un serveur flexible Azure Database pour MySQL via l’API Rest ou le SDK, évitez de modifier d’autres propriétés du service dans la même requête. Les modifications simultanées ne sont pas autorisées et peuvent entraîner des résultats inattendus ou un échec de la requête. Effectuez des modifications de la propriété dans des opérations distinctes après la mise à niveau.
- Certaines charges de travail peuvent ne pas présenter de performances améliorées après la mise à niveau de la version 5.7 vers la version 8.0. Nous vous suggérons d’évaluer les performances de votre charge de travail en créant d’abord un serveur réplica (en tant que serveur de test), puis de le promouvoir vers un serveur autonome, puis d’exécuter la charge de travail sur le serveur de test avant d’implémenter la mise à niveau dans un environnement de production.
- La mise à niveau de la version principale de MySQL est irréversible. Votre déploiement peut échouer si la validation identifie que le serveur est configuré avec toutes les fonctionnalités qui ont été supprimées ou déconseillées. Vous pouvez apporter des modifications de configuration nécessaires sur le serveur et réessayer la mise à niveau.
Prérequis
- Les réplicas en lecture avec MySQL version 5.7 doivent être mis à niveau avant le serveur principal pour que la réplication soit compatible entre les différentes versions de MySQL. Pour en savoir plus, consultez Replication Compatibility between MySQL versions (Compatibilité de réplication entre les versions de MySQL).
- Avant de mettre à niveau vos serveurs de production, il est désormais plus facile et plus efficace avec notre fonctionnalité intégrée Valider dans le portail Azure. Cet outil pré-vérifie la compatibilité de votre schéma de base de données avec MySQL 8.0, en mettant en évidence les problèmes potentiels. Bien que nous offrons cette option pratique, nous vous recommandons également vivement vous utilisez l’outil de vérification de mise à niveau Oracle MySQL officiel pour tester la compatibilité de votre schéma de base de données et effectuer un test de régression nécessaire pour vérifier la compatibilité des applications avec les fonctionnalités supprimées/déconseillées dans la nouvelle version de MySQL.
Remarque
Lorsque vous utilisez l’outil officiel d’Oracle pour vérifier la compatibilité du schéma, vous pouvez rencontrer des avertissements indiquant des jetons inattendus dans des procédures stockées, tels que :
mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'
mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode
Vous pouvez ignorer ces avertissements sans problème. Ils font référence aux procédures stockées intégrées précédées de mysql., utilisées pour prendre en charge les fonctionnalités Azure MySQL. Ces avertissements n’affectent pas les fonctionnalités de votre base de données. - Déclenchez de sauvegarde à la demande avant d’effectuer une mise à niveau de version majeure sur votre serveur de production, qui peut être utilisée pour restauration vers la version 5.7 à partir de la sauvegarde complète à la demande effectuée.
- Avant de procéder à la mise à niveau de la version majeure, assurez-vous qu’il n’existe aucune transaction XA active ou en attente dans la base de données, car les transactions XA en cours peuvent potentiellement faire échouer le processus de mise à niveau. Pour éviter ce problème, vérifiez d’abord si des transactions XA sont dans l’état « préparé » en exécutant
XA RECOVER;
. Pour toutes les transactions identifiées, utilisezXA ROLLBACK '{xid}'
; pour restaurer chaque transaction, en remplaçant {xid} par l’ID de transaction. Avant de lancer la mise à niveau, assurez-vous que toutes les transactions XA sont validées ou restaurées afin de maintenir la cohérence des transactions et de réduire le risque d’échec de la mise à niveau.
Effectuer une mise à niveau de version majeure planifiée de MySQL 5.7 vers MySQL 8.0 à l’aide du Portail Azure pour les serveurs de référence SKU Burstable
L’exécution d’une mise à niveau de version majeure pour un niveau de calcul de référence SKU Burstable Azure Database pour MySQL nécessite un flux de travail spécialisé. Cela est dû au fait que les mises à niveau de version majeure sont gourmandes en ressources, exigeant notamment des ressources de processeur et de mémoire importantes. Étant basées sur le crédit, les instances de référence SKU Burstable peuvent avoir des difficultés dans le cadre de ces exigences, ce qui peut entraîner l’échec du processus de mise à niveau. Par conséquent, lors de la mise à niveau d’une référence SKU Burstable, le système augmente d’abord le niveau de calcul vers une référence SKU Usage général pour s’assurer que les ressources suffisantes sont disponibles pour la mise à niveau.
Pour effectuer une mise à niveau de version majeure pour un niveau de calcul de référence SKU Burstable Azure Database pour MySQL à l’aide du Portail Azure, procédez comme suit :
Dans le portail Azure , sélectionnez votre serveur flexible Azure Database pour MySQL existant 5.7.
Important
Nous vous recommandons d’effectuer la mise à niveau en premier sur une copie restaurée du serveur plutôt que de mettre directement à niveau la production. Consultez Comment effectuer une restauration à un point dans le temps.
Dans la page Vue d’ensemble , dans la barre d’outils, sélectionnez Mettre à niveau.
Important
Avant la mise à niveau, consultez la liste des fonctionnalités supprimées dans MySQL 8.0. Vérifiez les valeurs de sql_mode déconseillées et supprimez/désélectionnez-les de votre serveur flexible Azure Database pour MySQL 5.7 actuel à l’aide du panneau Paramètres du serveur sur votre portail Azure pour éviter un échec de déploiement. Les paramètres sql_mode avec des valeurs NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS et NO_TABLE_OPTIONS ne sont plus pris en charge dans MySQL 8.0.
Validation de compatibilité du schéma
Avant de poursuivre la mise à niveau, exécutez l’outil de vérification de mise à niveau MySQL officiel d’Oracle pour vérifier que votre schéma de base de données actuel est compatible avec MySQL 8.0. Cette étape est essentielle pour garantir un processus de mise à niveau fluide.
Décision avant la mise à niveau
Avant de poursuivre la mise à niveau, vous devez choisir le niveau de calcul vers lequel vous souhaitez effectuer la mise à niveau de version majeure. Par défaut, le système effectue une mise à niveau de la référence SKU Burstable vers la référence SKU Usage général la plus basique, mais vous pouvez choisir de procéder à une mise à niveau vers un niveau de calcul supérieur si nécessaire.
Remarque
Bien que votre serveur fonctionne dans le niveau « Usage général » pendant la mise à niveau, vous serez facturé uniquement pour les ressources « Usage général » réellement utilisées pendant cette période.
Décision après la mise à niveau
Déterminez si vous souhaitez conserver la référence SKU Usage général ou revenir à la référence SKU Burstable après la mise à niveau. Vous serez invité à faire ce choix pendant les étapes initiales de la mise à niveau.
Le système met automatiquement à niveau votre niveau de calcul de la référence SKU Burstable vers la référence SKU Usage général sélectionnée pour prendre en charge la mise à niveau de version majeure.
Mise à niveau des versions principales
Une fois le niveau de calcul mis à niveau, le système lance le processus de mise à niveau de version majeure. Surveillez la progression de la mise à niveau via le Portail Azure. Le processus de mise à niveau peut prendre un certain temps en fonction de la taille et de l’activité de votre base de données.
Remarque
Si la mise à niveau de version majeure échoue, le niveau de calcul ne revient pas automatiquement à la référence SKU Burstable précédente. Cela permet aux clients de poursuivre la mise à niveau de version majeure sans avoir à effectuer à nouveau l’augmentation du niveau de calcul.
Restauration automatique
En fonction de votre décision avant la mise à niveau, le système conserve la référence SKU Usage général ou revient automatiquement à la référence SKU Burstable une fois la mise à niveau terminée.
Remarque
Si vous avez choisi de rétablir automatiquement la référence SKU Burstable, le système revient à la référence SKU B2S par défaut.
Effectuer une mise à niveau de version majeure planifiée de MySQL 5.7 vers MySQL 8.0 à l’aide du Portail Azure pour les serveurs de référence SKU Usage général et Critique pour l’entreprise
Pour effectuer une mise à niveau majeure d’un serveur flexible Azure Database pour MySQL 5.7 à l’aide du portail Azure, procédez comme suit.
Dans le portail Azure , sélectionnez votre serveur flexible Azure Database pour MySQL existant 5.7.
Important
Nous vous recommandons d’effectuer la mise à niveau en premier sur une copie restaurée du serveur plutôt que de mettre directement à niveau la production. Consultez Comment effectuer une restauration à un point dans le temps.
Dans la page Vue d’ensemble , dans la barre d’outils, sélectionnez Mettre à niveau.
Important
Avant la mise à niveau, consultez la liste des fonctionnalités supprimées dans MySQL 8.0. Vérifiez les valeurs de sql_mode déconseillées et supprimez/désélectionnez-les de votre serveur flexible Azure Database pour MySQL 5.7 actuel à l’aide du panneau Paramètres du serveur sur votre portail Azure pour éviter un échec de déploiement. Les paramètres sql_mode avec des valeurs NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS et NO_TABLE_OPTIONS ne sont plus pris en charge dans MySQL 8.0.
Effectuer une validation de pré-mise à niveau
Avant de poursuivre la mise à niveau, cliquez sur le bouton Valider pour vérifier la compatibilité de votre serveur avec MySQL 8.0.
Important
Lorsque vous utilisez la fonctionnalité « Valider » pour vérifier la compatibilité de votre schéma de base de données avec MySQL 8.0, sachez qu’il implique de verrouiller les tables pour évaluer avec précision l’intégralité du schéma. Ce processus peut entraîner des délais d’attente de requête. Par conséquent, il est conseillé de ne pas effectuer de validation pendant les heures de pointe ou lorsque votre base de données rencontre un trafic élevé. Le choix d’une période de faible activité pour la validation peut contribuer à réduire l’impact sur vos opérations.
Dans la barre latérale Mise à niveau, dans la zone de texte Version de MySQL à mettre à niveau, vérifiez la version principale de MySQL vers laquelle vous souhaitez effectuer la mise à niveau, c’est-à-dire la version 8.0.
Avant de pouvoir mettre à niveau votre serveur principal, vous devez d’abord avoir mis à niveau tous les serveurs réplicas en lecture associés. Tant que cette opération n’est pas terminée, la mise à niveau est désactivée.
Sur le serveur principal, sélectionnez le message de confirmation pour vérifier que tous les serveurs réplicas ont été mis à niveau, puis sélectionnez Mettre à niveau.
Sur les serveurs de réplica en lecture et autonomes, la mise à niveau est activée par défaut.
Effectuer une mise à niveau de version majeure planifiée de MySQL 5.7 vers MySQL 8.0 à l’aide d’Azure CLI
Pour effectuer une mise à niveau majeure d’un serveur flexible Azure Database pour MySQL 5.7 à l’aide d’Azure CLI, procédez comme suit.
Installez Azure CLI pour Windows ou utilisez Azure CLI dans Azure Cloud Shell pour exécuter les commandes de mise à niveau.
La version 2.40.0 ou une version ultérieure d’Azure CLI est nécessaire pour cette mise à niveau. Si vous utilisez Azure Cloud Shell, sachez que la version la plus récente est déjà installée. Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Une fois la connexion établie, exécutez la commande az mysql server upgrade.
az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
Sous l’invite de confirmation, tapez y pour confirmer ou n pour arrêter le processus de mise à niveau, puis appuyez sur Entrée.
Effectuez une mise à niveau de version majeure de MySQL 5.7 à MySQL 8.0 sur un serveur de réplica en lecture à l’aide du Portail Microsoft Azure.
Pour effectuer une mise à niveau majeure d’un serveur flexible Azure Database pour MySQL 5.7 vers MySQL 8.0 sur un réplica en lecture à l’aide du portail Azure, procédez comme suit.
Dans le portail Azure, sélectionnez votre serveur de réplica flexible Azure Database pour MySQL 5.7 existant.
Dans la page Vue d’ensemble , dans la barre d’outils, sélectionnez Mettre à niveau.
Important
Avant la mise à niveau, consultez la liste des fonctionnalités supprimées dans MySQL 8.0. Vérifiez les valeurs de sql_mode déconseillées et supprimez/désélectionnez-les de votre serveur flexible Azure Database pour MySQL 5.7 actuel à l’aide du panneau Paramètres du serveur sur votre portail Azure pour éviter l’échec du déploiement.
Dans la section Mettre à niveau , sélectionnez Mettre à niveau pour mettre à niveau un serveur de réplica flexible Azure Database pour MySQL 5.7 vers MySQL 8.0.
Une notification semble confirmer la réussite de la mise à niveau.
Dans la page Vue d’ensemble , vérifiez que votre serveur de réplica de lecture de serveur flexible Azure Database pour MySQL exécute la version 8.0.
Maintenant, accédez à votre serveur principal et effectuez-y une mise à niveau de version majeure.
Mise à niveau de version principale avec temps d’arrêt minimal de MySQL 5.7 vers MySQL 8.0 à l’aide de réplicas en lecture
Pour effectuer une mise à niveau majeure d’un serveur flexible Azure Database pour MySQL 5.7 vers MySQL 8.0 avec un temps d’arrêt minimal à l’aide de serveurs de réplica en lecture, procédez comme suit.
Dans le portail Azure, sélectionnez votre serveur flexible Azure Database pour MySQL 5.7 existant.
Créez un réplica en lecture à partir de votre serveur principal.
Mettez à niveau votre réplica en lecture vers la version 8.0.
Après avoir confirmé que le serveur de réplique exécute la version 8.0, empêchez votre application de se connecter à votre serveur primaire.
Vérifiez l’état de la réplication pour vous assurer que le réplica a rattrapé le principal afin que toutes les données soient synchronisées et qu’aucune nouvelle opération n’est effectuée sur le serveur principal.
Confirmez avec la commande Afficher l’état du réplica sur le serveur réplica pour afficher l’état de la réplication.
SHOW SLAVE STATUS\G
Si l’état de Slave_IO_Running et Slave_SQL_Running est oui et la valeur de Seconds_Behind_Master est 0, la réplication fonctionne bien. Seconds_Behind_Master indique la fin du réplica. Si la valeur est différente de 0, cela signifie que le réplica traite les mises à jour. Une fois que vous avez confirmé que la valeur de Seconds_Behind_Master est ****, vous pouvez arrêter la réplication en toute sécurité.
Promouvez votre réplica en lecture en serveur principal en arrêtant la réplication.
Définissez le paramètre de serveur read_only sur 0, c’est-à-dire sur (OFF) pour commencer à écrire sur le principal promu.
Pointez votre application vers le nouveau serveur principal (ancien réplica) qui exécute la version 8.0. Chaque serveur est associé à une chaîne de connexion unique. Mettez à jour votre application pour qu’elle pointe vers l’ancien réplica plutôt que le serveur source.
Remarque
Ce scénario entraîne uniquement des temps d’arrêt pendant les étapes 4 à 7.
Forum aux questions
Cela entraînera-t-il un temps d’arrêt du serveur et, le cas échéant, de combien de temps ?
Pour avoir un temps d’arrêt minimal pendant les mises à niveau, suivez les étapes mentionnées sous Effectuer une mise à niveau de version majeure de temps d’arrêt minimal de MySQL 5.7 vers MySQL 8.0 à l’aide de réplicas en lecture. Le serveur n’est pas disponible pendant le processus de mise à niveau. Nous vous recommandons donc d’effectuer cette opération au cours de la fenêtre de maintenance planifiée. Le temps d’arrêt estimé dépend de la taille de la base de données, de la taille de stockage approvisionnée (IOPs approvisionnée) et du nombre de tables sur la base de données. Le temps de mise à niveau est directement proportionnel au nombre de tables sur le serveur. Pour estimer le temps d’arrêt de votre environnement de serveur, nous vous recommandons d’effectuer la mise à niveau sur la copie restaurée du serveur.
Qu’advient-il de mes sauvegardes après la mise à niveau ?
Toutes les sauvegardes (automatisées/à la demande) effectuées avant la mise à niveau de la version principale, lorsqu’elles sont utilisées pour la restauration, sont toujours restaurées sur un serveur à une version antérieure (5.7). Toutes les sauvegardes (automatisées/à la demande) effectuées après la mise à niveau de la version principale sont rétablies sur le serveur à la version mise à niveau (8.0). Il est vivement recommandé d’effectuer une sauvegarde à la demande avant d’effectuer la mise à niveau de la version principale afin de simplifier la restauration.
J’utilise actuellement la référence SKU Burstable. est-ce que Microsoft prévoit de prendre en charge la mise à niveau de version majeure pour cette référence SKU ?
La référence SKU burstable n’est pas en mesure de prendre en charge la mise à niveau de version majeure en raison de la limitation des performances de cette référence SKU.
Si vous avez besoin d’effectuer une mise à niveau de version majeure sur votre instance de serveur flexible Azure Database pour MySQL et utilisez actuellement la référence SKU Burstable, une solution temporaire consiste à effectuer une mise à niveau vers une référence SKU usage général ou critique pour l’entreprise, d’effectuer la mise à niveau, puis de revenir à la référence SKU Burstable.
Notez que la mise à niveau vers une référence SKU plus élevée peut impliquer une augmentation du tarif et des coûts de votre déploiement. Toutefois, étant donné que le processus de mise à niveau ne devrait pas prendre beaucoup de temps, les coûts ajoutés ne doivent pas être significatifs.
Étapes suivantes
- En savoir plus sur comment configurer des de maintenance planifiée pour votre instance de serveur flexible Azure Database pour MySQL.
- Découvrez les nouveautés de MySQL version 8.0.