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 de RDS pour 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 ne pouvez créer des instances de base de données MySQL versions 5.7, 8.0 et 8.4 qu'avec des classes d'instance de base de données de dernière génération et de génération actuelle.
Dans certains cas, vous souhaitez mettre à niveau une instance de base de données exécutée 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 dotée d'une version supérieure du 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 du moteur de base de données MySQL. Pour de plus amples informations sur les classes d'instance de base de données Amazon RDS, veuillez consulter Classes d'instances de base de données .
Rubriques
Présentation des mises à niveau de version majeure MySQL
Les mises à niveau de version majeure 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, effectuez d'abord toutes les mises à jour du système d'exploitation disponibles. Une fois les mises à jour du système d'exploitation terminées, effectuez une mise à niveau vers chaque version majeure, par exemple de 5.7 à 8.0, puis de 8.0 à 8.4. Pour plus d'informations sur la mise à niveau d'un cluster de bases de données multi-AZ RDS pour MySQL, consultez. Mise à niveau de la version du moteur d'un cluster de base 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 de plus amples informations sur les mises à jour du système d'exploitation, veuillez consulter Appliquer des mises à jour à un d'instances 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 la mise à niveau à l'aide de AWS Command Line Interface (AWS CLI), utilisez la describe-db-instancescommande et vérifiez la Status
valeur.
Vérifications préalables pour les mises à niveau
Amazon RDS effectue des prévérifications 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 de plus amples informations sur les vérifications préalables fournies par MySQL, veuillez consulter 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 aucun temps d'arrêt. 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 de plus amples informations sur les événements Amazon RDS, veuillez consulte Utilisation des notifications d'RDSévénements Amazon.
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 de plus amples informations sur l'affichage des fichiers journaux, veuillez consulter Liste et affichage des fichiers journaux de base de données.
En raison de la nature des prévérifications, elles analysent les objets de votre base de données. L'analyse entraîne la consommation de ressources et augmente le temps nécessaire pour la mise à niveau.
Rubriques
Prévérifications pour les mises à niveau de MySQL 8.0 à 8.4
MySQL 8.4 inclut un certain nombre d'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 peuvent être réservés dans MySQL 8.4 alors qu'ils n'étaient pas réservés auparavant.
Pour en savoir plus, consultez Mots clés et mots réservés
dans la documentation MySQL. -
Aucune table de la base de données
mysql
système MySQL 8.0 ne doit porter le même nom qu'une table utilisée par 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
ENUM
ouSET
individuels ne doit dépasser 255 caractères ou 1 020 octets de longueur. -
Votre installation de MySQL 8.0 ne doit pas utiliser de fonctionnalités qui ne sont pas prises en charge dans MySQL 8.4.
Pour plus d'informations, consultez la section 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 meilleure prise en charge de l'Unicode, consultez les informations suivantes :
-
Envisagez de convertir les objets qui utilisent le jeu de
utf8mb3
caractères pour utiliser le jeu deutf8mb4
caractères. Le jeu de caractèresutf8mb3
est obsolète. -
Envisagez d'utiliser
utf8mb4
pour les références au jeu de caractères au lieu deutf8
, car ilutf8
s'agit actuellement d'un alias pour leutf8mb3
jeu de caractères. Si possible, passez d'utf8mb4
abordutf8
à la base de données, 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 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 Amazon RDS Blue/Green Deployments. Pour de plus amples informations, veuillez consulter Utilisation des déploiements Amazon RDS ( Blue/Green) pour les mises à jour de bases de données.
-
Lorsque vous lancez une mise à niveau de MySQL 8.0 vers la version 8.4, Amazon RDS exécute automatiquement des prévérifications pour détecter ces incompatibilités. Pour plus d'informations sur la mise à niveau vers MySQL 8.4, consultez la section Mise à niveau de 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 temps d'arrêts non planifiés pendant la mise à niveau.
-
Si vous avez des 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 MySQL 8.4 en réduisant les incompatibilités. Pour 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 Mots clés et mots réservés
dans la documentation MySQL. -
Aucune table de la base de données du système
mysql
dans 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
ENUM
ouSET
individuels 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
ASC
ouDESC
pour les clausesGROUP BY
. -
Votre installation MySQL ne doit pas utiliser de fonctionnalités incompatibles avec MySQL 8.0.
Pour en savoir plus, 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 meilleure prise en charge de l'Unicode, consultez les informations suivantes :
-
Envisagez de convertir les objets qui utilisent le jeu de
utf8mb3
caractères pour utiliser le jeu deutf8mb4
caractères. Le jeu de caractèresutf8mb3
est obsolète. -
Envisagez d'utiliser
utf8mb4
pour les références au jeu de caractères au lieu deutf8
, car ilutf8
s'agit actuellement d'un alias pour leutf8mb3
jeu de caractères. Si possible, passez d'utf8mb4
abordutf8
à la base de données, 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 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 Amazon RDS Blue/Green Deployments. Pour de plus amples informations, veuillez consulter Utilisation des déploiements Amazon RDS ( Blue/Green) 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 Mise à niveau de 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 temps d'arrêts non planifiés pendant la mise à niveau.
-
Si vous avez des 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 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 démarre pas correctement dans la nouvelle version MySQL 8.0 ou 8.4. À ce stade, Amazon RDS annule les modifications effectuées pour la mise à niveau. Après le rollback, l'instance de base de données MySQL exécute la version d'origine :
-
MySQL version 8.0 (pour une restauration depuis MySQL 8.4)
-
MySQL version 5.7 (pour une restauration depuis 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 plus d'informations sur la mise à niveau vers MySQL 8.4, consultez Préparation de votre installation pour la mise à niveau