Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Mises à niveau des versions majeures pour RDS for MySQL
Amazon RDS prend en charge les mises à niveau sur place des versions majeures suivantes du moteur de base de données MySQL :
-
MySQL 5.7 vers MySQL 8.0
-
MySQL 8.0 vers MySQL 8.4
Note
Vous pouvez uniquement créer des instances de base de données MySQL versions 5.7, 8.0 et 8.4 avec les classes d’instance de base de données de la génération actuelle et de la dernière génération.
Dans certains cas, vous souhaiterez mettre à niveau une instance de base de données en cours d’exécution sur une classe d’instance de base de données de génération précédente vers une instance de base de données avec une version supérieure de moteur MySQL. Dans ce cas, commencez par modifier l’instance de base de données afin d’utiliser une classe d’instance de base de données de génération actuelle ou de dernière génération. Ensuite, vous pouvez modifier l’instance de base de données pour utiliser la version supérieure de moteur de base de données MySQL. Pour plus d’informations sur les classes d’instance de base de données Amazon RDS, consultez Classes d’instance de base de données .
Rubriques
Présentation des mises à niveau de version majeure MySQL
Les mises à niveau des versions majeures peuvent contenir des modifications de base de données qui ne sont pas rétrocompatibles avec les applications existantes. En conséquence, Amazon RDS n’applique pas automatiquement les mises à niveau de version majeure. Vous devez modifier manuellement votre instance de base de données. Nous vous recommandons de tester soigneusement toute mise à niveau avant de l’appliquer à vos instances de production.
Pour effectuer une mise à niveau de version majeure, procédez d’abord aux mises à jour du système d’exploitation disponibles. Une fois les mises à jour du système d’exploitation terminées, mettez à niveau vers chaque version majeure : 5.7 vers 8.0, puis 8.0 vers 8.4. Pour en savoir plus sur la mise à niveau d’un cluster de bases de données multi-AZ RDS for MySQL, consultez Mise à niveau de la version du moteur d’un cluster de bases de données multi-AZ pour Amazon RDS. Les instances de base de données MySQL créées avant le 24 avril 2014 affichent une mise à jour de système d’exploitation disponible jusqu’à ce que celle-ci soit appliquée. Pour plus d’informations sur les mises à jour du système d’exploitation, consultez Application des mises à jour à une instance de base de données.
Au cours d’une mise à niveau de version majeure de MySQL, Amazon RDS exécute le fichier binaire MySQL mysql_upgrade pour mettre à niveau les tables, si nécessaire. Amazon RDS vide également les tables slow_log et general_log pendant une mise à niveau de version majeure. Pour conserver les informations de journal, enregistrez le contenu du journal avant la mise à niveau de version majeure.
Les mises à niveau des versions majeures de MySQL durent généralement environ 10 minutes. Certaines mises à niveau peuvent durer plus longtemps en raison de la taille de la classe d’instance de base de données ou parce que l’instance ne suit pas certaines directives opérationnelles indiquées dans Bonnes pratiques relatives à Amazon RDS.. Si vous effectuez une mise à niveau d’une instance de base de données à partir de la console Amazon RDS, le statut de l’instance de base de données indique quand la mise niveau est terminée. Si vous effectuez une mise à niveau à l’aide de l’AWS Command Line Interface (AWS CLI), utilisez la commande describe-db-instances et vérifiez la valeur de Status.
Vérifications préalables pour les mises à niveau
Amazon RDS effectue des vérifications préalables avant la mise à niveau afin de vérifier les incompatibilités. Ces incompatibilités varient en fonction de la version de MySQL vers laquelle la mise à niveau est effectuée.
Certaines vérifications préalables sont incluses avec MySQL et d’autres ont été spécifiquement créées par l’équipe Amazon RDS. Pour plus d’informations sur les vérifications préalables fournies par MySQL, consultez Upgrade Checker Utility
Les vérifications préalables s’exécutent avant que l’instance de base de données soit arrêtée pour la mise à niveau, ce qui signifie que leur exécution n’entraîne aucune durée d’indisponibilité. Si les vérifications préalables trouvent une incompatibilité, Amazon RDS annule automatiquement la mise à niveau avant que l’instance de base de données soit arrêtée. Amazon RDS génère également un événement pour l’incompatibilité. Pour plus d’informations sur les événements Amazon RDS, consultez Utiliser la notification d'événements d'Amazon RDS.
Amazon RDS enregistre des informations détaillées sur chaque incompatibilité dans le fichier journal PrePatchCompatibility.log. Dans la plupart des cas, l’entrée de journal inclut un lien vers la documentation MySQL permettant de corriger l’incompatibilité. Pour plus d’informations sur l’affichage des fichiers journaux, consultez Liste et affichage des fichiers journaux de base de données.
En raison de la nature des vérifications préalables, elles analysent les objets dans votre base de données. L’analyse entraîne la consommation de ressources et augmente le temps nécessaire pour la mise à niveau.
Rubriques
Vérifications préalables aux mises à jour de MySQL 8.0 vers 8.4
MySQL 8.4 inclut plusieurs incompatibilités avec MySQL 8.0. Ces incompatibilités peuvent provoquer des problèmes lors d’une mise à niveau de MySQL 8.0 vers MySQL 8.4. Une certaine préparation est donc nécessaire sur votre base de données pour garantir la réussite de la mise à niveau. La liste suivante est une liste généralisée de ces incompatibilités :
-
Les tables ne doivent pas utiliser de fonctions ou de types de données obsolètes.
-
Les déclencheurs ne doivent pas avoir de definer manquant ou vide, ni de contexte de création invalide.
-
Il ne doit y avoir aucune violation de mot clé ou de mot réservé. Certains mots clés doivent être réservés dans MySQL 8.4 alors qu’ils ne l’étaient pas par le passé.
Pour en savoir plus, consultez la section Mots clés et mots réservés
dans la documentation MySQL. -
Aucune table de la base de données du système
mysqldans MySQL 8.0 ne doit avoir le même nom que la table utilisée dans le dictionnaire de données MySQL 8.4. -
Aucun mode SQL obsolète ne doit être défini dans la configuration variable de votre système
sql_mode. -
Aucune table ni procédure stockée avec des éléments de colonne
ENUMouSETindividuels ne doit dépasser 255 caractères ou 1 020 octets de longueur. -
Votre installation MySQL 8.0 ne doit pas utiliser de fonctionnalités incompatibles avec MySQL 8.4.
Pour plus d’informations, consultez Fonctionnalités supprimées dans MySQL 8.4
dans la documentation MySQL. -
Aucun nom de contrainte de clé étrangère ne doit dépasser 64 caractères.
-
Pour une prise en charge Unicode améliorée, consultez les informations suivantes :
-
Envisagez de convertir les objets qui utilisent le jeu de caractères
utf8mb3pour utiliser le jeu de caractèresutf8mb4. Le jeu de caractèresutf8mb3est obsolète. -
Envisagez d’utiliser
utf8mb4pour référencer les jeux de caractères au lieu deutf8. En effet, actuellement,utf8est un alias du jeu de caractèresutf8mb3. Si possible, passez d’abord deutf8mb4àutf8, puis mettez à niveau votre base de données. -
Comme les clients plus anciens peuvent recevoir une erreur de jeu de caractères inconnue pour
utf8mb3, mettez à niveau vos clients de base de données avant de mettre à niveau votre base de données.
Pour en savoir plus, consultez la section Le jeu de caractères utf8mb3 (encodage Unicode 3 octets en UTF-8)
dans la documentation MySQL. Pour modifier les jeux de caractères, vous pouvez effectuer manuellement une sauvegarde, une restauration et une réplication de votre base de données. Vous pouvez également utiliser les déploiements bleu/vert Amazon RDS. Pour plus d’informations, consultez Utilisation d'Amazon RDS ( Blue/Green Deployments) pour les mises à jour de bases de données.
-
Lorsque vous démarrez une mise à niveau de MySQL 8.0 vers 8.4, Amazon RDS exécute automatiquement des vérifications préalables pour détecter ces incompatibilités. Pour plus d’informations sur la mise à niveau vers MySQL 8.4, consultez Upgrading MySQL
Ces vérifications préalables sont obligatoires. Vous ne pouvez pas choisir de les ignorer. Elles offrent les avantages suivants :
-
Elles vous permettent d’éviter les durées d’indisponibilités non planifiées pendant la mise à niveau.
-
En cas d’incompatibilités, Amazon RDS empêche la mise à niveau et vous fournit un journal pour que vous en sachiez plus à leur sujet. Vous pouvez ensuite utiliser le journal pour préparer votre base de données pour la mise à niveau vers la version 8.4 de MySQL en réduisant ces incompatibilités. Pour obtenir des informations détaillées sur la suppression des incompatibilités, consultez Préparation de votre installation pour la mise à niveau
dans la documentation MySQL.
Vérifications préalables aux mises à jour de MySQL 5.7 vers 8.0
MySQL 8.0 inclut plusieurs incompatibilités avec MySQL 5.7. Ces incompatibilités peuvent provoquer des problèmes lors d’une mise à niveau de MySQL 5.7 vers MySQL 8.0. Une certaine préparation est donc nécessaire sur votre base de données pour garantir la réussite de la mise à niveau. La liste suivante est une liste généralisée de ces incompatibilités :
-
Les tables ne doivent pas utiliser de fonctions ou de types de données obsolètes.
-
Il ne doit y avoir aucun fichier *.frm orphelin.
-
Les déclencheurs ne doivent pas avoir de definer manquant ou vide, ni de contexte de création invalide.
-
Aucune table partitionnée ne doit utiliser de moteur de stockage dépourvu de prise en charge native du partitionnement.
-
Il ne doit y avoir aucune violation de mot clé ou de mot réservé. Certains mots clés doivent être réservés dans MySQL 8.0 alors qu’ils ne l’étaient pas par le passé.
Pour en savoir plus, consultez la section Mots clés et mots réservés
dans la documentation MySQL. -
Aucune table de la base de données du système
mysqldans MySQL 5.7 ne doit avoir le même nom que la table utilisée dans le dictionnaire de données MySQL 8.0. -
Aucun mode SQL obsolète ne doit être défini dans la configuration variable de votre système
sql_mode. -
Aucune table ni procédure stockée avec des éléments de colonne
ENUMouSETindividuels ne doit dépasser 255 caractères ou 1 020 octets de longueur. -
Avant de mettre à niveau vers la version MySQL 8.0.13 ou une version ultérieure, aucune partition de table ne doit se trouver dans les espaces de stockage InnoDB partagés.
-
Aucune requête ni définition de programme de la version MySQL 8.0.12 ou d’une version antérieure ne doit utiliser de qualificateur
ASCouDESCpour les clausesGROUP BY. -
Votre installation MySQL ne doit pas utiliser de fonctionnalités incompatibles avec MySQL 8.0.
Pour plus d’informations, consultez Fonctionnalités supprimées dans MySQL 8.0
dans la documentation MySQL. -
Aucun nom de contrainte de clé étrangère ne doit dépasser 64 caractères.
-
Pour une prise en charge Unicode améliorée, consultez les informations suivantes :
-
Envisagez de convertir les objets qui utilisent le jeu de caractères
utf8mb3pour utiliser le jeu de caractèresutf8mb4. Le jeu de caractèresutf8mb3est obsolète. -
Envisagez d’utiliser
utf8mb4pour référencer les jeux de caractères au lieu deutf8. En effet, actuellement,utf8est un alias du jeu de caractèresutf8mb3. Si possible, passez d’abord deutf8mb4àutf8, puis mettez à niveau votre base de données. -
Comme les clients plus anciens peuvent recevoir une erreur de jeu de caractères inconnue pour
utf8mb3, mettez à niveau vos clients de base de données avant de mettre à niveau votre base de données.
Pour en savoir plus, consultez la section Le jeu de caractères utf8mb3 (encodage Unicode 3 octets en UTF-8)
dans la documentation MySQL. Pour modifier les jeux de caractères, vous pouvez effectuer manuellement une sauvegarde, une restauration et une réplication de votre base de données. Vous pouvez également utiliser les déploiements bleu/vert Amazon RDS. Pour plus d’informations, consultez Utilisation d'Amazon RDS ( Blue/Green Deployments) pour les mises à jour de bases de données.
-
Lorsque vous démarrez une mise à niveau de MySQL 5.7 vers 8.0, Amazon RDS exécute automatiquement des vérifications préalables pour détecter ces incompatibilités. Pour plus d’informations sur la mise à niveau vers MySQL 8.0, consultez Upgrading MySQL
Ces vérifications préalables sont obligatoires. Vous ne pouvez pas choisir de les ignorer. Elles offrent les avantages suivants :
-
Elles vous permettent d’éviter les durées d’indisponibilités non planifiées pendant la mise à niveau.
-
En cas d’incompatibilités, Amazon RDS empêche la mise à niveau et vous fournit un journal pour que vous en sachiez plus à leur sujet. Vous pouvez ensuite utiliser le journal pour préparer votre base de données pour la mise à niveau vers la version 8.0 de MySQL en réduisant ces incompatibilités. Pour obtenir des informations détaillées sur la suppression des incompatibilités, consultez Préparation de votre installation pour la mise à niveau
(langue française non garantie) dans la documentation MySQL et Mise à niveau vers MySQL 8.0 ? Ce que vous devez savoir… (langue française non garantie) sur le blog MySQL Server.
Annulation après échec de la mise à niveau
Lorsque vous mettez à niveau une instance de base de données de MySQL version 5.7 vers MySQL version 8.0 ou de MySQL version 8.0 vers 8.4, la mise à niveau peut échouer. Elle peut échouer en particulier si le dictionnaire de données contient des incompatibilités qui n’ont pas été détectées alors des vérifications préalables. Dans ce cas, la base de données ne parvient pas à démarrer dans la nouvelle version de MySQL 8.0 ou 8.4. À ce stade, Amazon RDS annule les modifications effectuées pour la mise à niveau. Après la restauration, l’instance de base de données MySQL exécute la version d’origine.
-
MySQL version 8.0 (pour une restauration à MySQL 8.4)
-
MySQL version 5.7 (pour une restauration à MySQL 8.0)
Lorsqu’une mise à niveau échoue et qu’elle est annulée, Amazon RDS génère un événement avec l’ID RDS-EVENT-0188.
Généralement, une mise à niveau échoue car il existe des incompatibilités dans les métadonnées entre les bases de données de votre instance de base de données et la version MySQL cible. En cas d’échec d’une mise à niveau, vous pouvez afficher les détails de ces incompatibilités dans le fichier upgradeFailure.log. Vous devez résoudre les incompatibilités avant de répéter la tentative de mise à niveau.
Lors d’une tentative de mise à niveau infructueuse et d’une restauration, votre instance de base de données est redémarrée. Tous les changements de paramètres en attente sont appliqués lors du redémarrage et sont maintenus après la restauration.
Pour plus d’informations sur la mise à niveau vers MySQL 8.0, consultez les rubriques suivantes de la documentation MySQL :
Pour en savoir plus sur mise à niveau vers MySQL 8.4, consultez Préparation de votre installation pour la mise à niveau