Mise à niveau du moteur de base de données MySQL - Amazon Relational Database Service

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.

Mise à niveau du moteur de base de données MySQL

Lorsque Amazon RDS prend en charge une nouvelle version d'un moteur de base de données, vous pouvez mettre à niveau vos instances de base de données vers cette nouvelle version. Il existe deux types de mises à niveau pour les bases de données MySQL : les mises à niveau des versions majeures et les mises à niveau des versions mineures.

Mises à niveau de version majeure.

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, vous devez effectuer manuellement les mises à niveau de version majeure de vos instances de base de données. Vous pouvez lancer une mise à niveau de version majeure en modifiant votre instance de base de données. Avant d'effectuer une mise à niveau de version majeure, nous vous recommandons de suivre les instructions figurant dansMises à niveau de version majeure pour MySQL.

Pour les mises à niveau de versions majeures des déploiements d'instances de base de données multi-AZ, Amazon RDS met à niveau simultanément les répliques principales et de secours. Votre instance de base de données ne sera pas disponible tant que la mise à niveau ne sera pas terminée. Actuellement, Amazon RDS ne prend pas en charge les mises à niveau de versions majeures pour les déploiements de clusters de bases de données multi-AZ.

Astuce

Vous pouvez minimiser le temps d'arrêt requis pour une mise à niveau de version majeure en utilisant un déploiement bleu/vert. Pour plus d’informations, consultez Utilisation d'Amazon RDS Blue/Green Deployments pour les mises à jour de bases de données.

Mises à niveau de version mineure.

Les mises à niveau de versions mineures incluent uniquement les modifications rétrocompatibles avec les applications existantes. Vous pouvez lancer manuellement une mise à niveau de version mineure en modifiant votre instance de base de données. Vous pouvez également activer l'option de mise à niveau automatique des versions mineures lors de la création ou de la modification d'une instance de base de données. Cela signifie qu'Amazon RDS met automatiquement à niveau votre instance de base de données après avoir testé et approuvé la nouvelle version. Pour de plus amples informations sur la mise à niveau, veuillez consulter Mise à niveau de la version du moteur d'une instance de base de données.

Lorsque vous effectuez une mise à niveau de version mineure d'un cluster de base de données multi-AZ, Amazon RDS met à niveau les instances de base de données du lecteur une par une. Ensuite, l'une des instances de base de données du lecteur devient la nouvelle instance de base de données du rédacteur. Amazon RDS met ensuite à niveau l'ancienne instance d'écriture (qui est désormais une instance de lecteur).

Note

Le temps d'arrêt lié à une mise à niveau de version mineure d'un déploiement d'instance de base de données multi-AZ peut durer plusieurs minutes. Les clusters de bases de données multi-AZ réduisent généralement le temps d'arrêt des mises à niveau de versions mineures à environ 35 secondes. Lorsqu'il est utilisé avec le proxy RDS, vous pouvez réduire davantage les temps d'arrêt à une seconde ou moins. Pour plus d’informations, consultez Utilisation d'Amazon RDS Proxy . Vous pouvez également utiliser un proxy de base de données open source tel que ProxySQL ou le pilote PgBouncer AWSJDBC pour MySQL.

Si votre instance de base de données MySQL utilise des répliques en lecture, vous devez mettre à niveau toutes les répliques en lecture avant de mettre à niveau l'instance source.

Présentation de la mise à niveau

Lorsque vous utilisez le AWS Management Console pour mettre à niveau une instance de base de données, il affiche les cibles de mise à niveau valides pour l'instance de base de données. Vous pouvez également utiliser la AWS CLI commande suivante pour identifier les cibles de mise à niveau valides pour une instance de base de données :

Pour LinuxmacOS, ou Unix :

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version version-number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Dans Windows :

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Par exemple, pour identifier les cibles de mise à niveau valides pour une instance de base de données MySQL version 8.0.28, exécutez la commande suivante : AWS CLI

Pour LinuxmacOS, ou Unix :

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version 8.0.28 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Dans Windows :

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version 8.0.28 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Amazon RDS prend deux instantanés de base de données ou plus au cours du processus de mise à niveau. Amazon RDS prend jusqu'à deux instantanés de l'instance de base de données avant d'apporter des modifications à la mise à niveau. Si la mise à niveau ne fonctionne pas pour vos bases de données, vous pouvez restaurer l'un de ces instantanés pour créer une instance de base de données exécutant l'ancienne version. Amazon RDS prend un autre instantané de l'instance de base de données une fois la mise à niveau terminée. Amazon RDS prend ces instantanés, qu'il AWS Backup gère ou non les sauvegardes de l'instance de base de données.

Note

Amazon RDS ne prend des instantanés de base de données que si vous avez défini la période de rétention des sauvegardes de votre instance de base de données sur un nombre supérieur à 0. Pour modifier la période de rétention des sauvegardes, consultez Modification d'une instance de base de données Amazon RDS.

Une fois la mise à niveau terminée, vous ne pouvez pas rétablir la version précédente du moteur de base de données. Si vous souhaitez revenir à la version précédente, restaurez le premier instantané de base de données pris pour créer une nouvelle instance de base de données.

Vous contrôlez à quel moment vous mettez à niveau votre instance de base de données vers une nouvelle version prise en charge par Amazon RDS. Ce niveau de contrôle vous aide à maintenir la compatibilité avec des versions de base de données spécifiques et à tester les nouvelles versions avec votre application avant un déploiement en production. Lorsque vous êtes prêt, vous pouvez effectuer des mises à niveau de version aux moments qui conviennent le mieux à votre planning.

Si votre instance de base de données utilise la réplication en lecture, vous devez mettre à niveau toutes les répliques en lecture avant de mettre à niveau l'instance source.

Numéros de version de MySQL

La séquence de numérotation des versions du moteur de base de données RDS pour MySQL se présente sous la forme major.minor.patch.YYYYMMDD ou major.minor.patch, par exemple 8.0.33.R2.20231201 ou 5.7.44. Le format utilisé dépend de la version du moteur MySQL. Pour plus d'informations sur la numérotation des versions de RDS Extended Support, consultez. Dénomination des versions d'Amazon RDS Extended Support

majeur

Le numéro de version principal est à la fois le nombre entier et la première partie fractionnaire du numéro de version, par exemple 8.0. Une mise à niveau majeure augmente la partie majeure du numéro de version. Par exemple, une mise à niveau de 5.7 .44 vers 8.0.33 est une mise à niveau de version majeure, où 5.7 et 8.0 sont les numéros de version principaux.

mineur

Le numéro de version secondaire est la troisième partie du numéro de version, par exemple, le 33 dans la version 8.0.33.

patch

Le correctif est la quatrième partie du numéro de version, par exemple, le R2 dans 8.0.33.R2. Une version de correctif RDS inclut des corrections de bogues importantes apportées à une version mineure après sa publication.

YYYYMMDD

La date est la cinquième partie du numéro de version, par exemple, le 20231201 dans 8.0.33.R2.20231201. Une version RDS date est un correctif de sécurité qui inclut des correctifs de sécurité importants ajoutés à une version mineure après sa publication. Il n'inclut aucun correctif susceptible de modifier le comportement d'un moteur.

Le tableau suivant explique le schéma de dénomination de RDS pour MySQL version 8.0.

Version mineure 8.0 Schéma de dénomination
≥ 33 Les nouvelles instances de base de données utilisent Major.Minor.Patch.YYMMDD, par exemple 8.0.33.R2.20231201.

Les instances de base de données existantes peuvent utiliser major.minor.patch, par exemple 8.0.33.R2, jusqu'à votre prochaine mise à niveau de version majeure ou mineure.

< 33 Les instances de base de données existantes utilisent major.minor.patch, par exemple 8.0.32.R2.

Le tableau suivant explique le schéma de dénomination de RDS pour MySQL version 5.7.

5.7 version mineure Schéma de dénomination
≥ 42 Les nouvelles instances de base de données utilisent Major.Minor.Patch.YYMMDD, par exemple 5.7.42.R2.20231201.

Les instances de base de données existantes peuvent utiliser major.minor.patch, par exemple 5.7.42.R2, jusqu'à votre prochaine mise à niveau de version majeure ou mineure.

Numéro de version de RDS

Les numéros de version RDS utilisent soit le schéma de dénomination, major.minor.patch soit le schéma de major.minor.patch.YYYYMMDD dénomination. Une version de correctif RDS inclut des corrections de bogues importantes apportées à une version mineure après sa publication. Une version avec date RDS (YYMMDD) est un correctif de sécurité. Un correctif de sécurité n'inclut aucun correctif susceptible de modifier le comportement du moteur. Pour plus d'informations sur la numérotation des versions de RDS Extended Support, consultez. Dénomination des versions d'Amazon RDS Extended Support

Pour identifier le numéro de version Amazon RDS de votre base de données, vous devez d'abord créer l'extension rds_tools à l'aide de la commande suivante :

CREATE EXTENSION rds_tools;

Vous pouvez connaître le numéro de version RDS de votre base de données RDS pour MySQL à l'aide de la requête SQL suivante :

mysql> select mysql.rds_version();

Par exemple, l'interrogation d'une base de données RDS for MySQL 8.0.34 renvoie le résultat suivant :

+---------------------+ | mysql.rds_version() | +---------------------+ | 8.0.34.R2.20231201 | +---------------------+ 1 row in set (0.01 sec)

Mises à niveau de version majeure 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.6 vers MySQL 5.7

  • MySQL 5.7 vers MySQL 8.0

Note

Vous pouvez uniquement créer des instances de base de données MySQL version 5.7 et 8.0 avec les classes d'instance de base de données de la génération actuelle et de la dernière génération, en plus de la classe d'instance de base de données de la génération précédente db.m3.

Dans certains cas, vous souhaiterez mettre à niveau une instance de base de données MySQL version 5.6 en cours d'exécution sur une classe d'instance de base de données de génération précédente (autre que db.m3) vers une instance de base de données MySQL version 5.7. 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 le moteur de base de données MySQL version 5.7. 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 .

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 d'une instance de base de données MySQL version 5.6 sur Amazon RDS vers MySQL version 5.7 ou ultérieure, commencez par effectuer toutes les mises à jour disponibles du système d'exploitation. Une fois les mises à jour du système d'exploitation terminées, mettez à niveau vers chaque version majeure : 5.6 vers 5.7, puis 5.7 vers 8.0. 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 Application des mises à jour pour 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 la mise à niveau à l'aide de AWS Command Line Interface (AWS CLI), utilisez la describe-db-instancescommande et vérifiez la Status valeur.

Les mises à niveau vers MySQL version 5.7 peuvent être lentes

MySQL version 5.6.4 a introduit un nouveau format de date et d'heure pour les colonnes datetime, time et timestamp, qui autorise les expressions fractionnaires dans les valeurs de date et d'heure. Lors de la mise à niveau d'une instance de base de données vers MySQL version 5.7, MySQL force la conversion de tous les types de colonne de date et d'heure dans le nouveau format.

Étant donné que cette conversion recrée vos tables, cela peut prendre beaucoup de temps pour terminer la mise à niveau de l'instance de base de données. La conversion forcée se produit pour toutes les instances de base de données qui exécutent une version MySQL antérieure à la version 5.6.4. Elle se produit également pour les instances de base de données qui ont été mises à niveau à partir d'une version de MySQL antérieure à la version 5.6.4 vers une version autre que 5.7.

Si votre instance de base de données exécute une version de MySQL antérieure à la version 5.6.4 ou a été mise à niveau à partir d'une version antérieure à la version 5.6.4, nous recommandons d'effectuer une étape supplémentaire. Dans ce cas, nous vous recommandons de convertir les colonnes datetime, time et timestamp de votre base de données avant de mettre à niveau votre instance de base de données vers MySQL version 5.7. Cette conversion peut considérablement réduire le temps nécessaire pour mettre à niveau l'instance de base de données vers MySQL version 5.7. Pour mettre à niveau les colonnes de date et d'heure vers le nouveau format, vous devez émettre la commande ALTER TABLE <table_name> FORCE; pour chaque table qui contient des colonnes de date ou d'heure. Comme la modification d'une table la verrouille en lecture seule, il est recommandé d'effectuer cette mise à jour pendant une fenêtre de maintenance.

Pour trouver toutes les tables de votre base de données qui comportent des colonnes datetime, time ou timestamp, et créer une commande ALTER TABLE <table_name> FORCE; pour chaque table, utilisez la requête suivante.

SET show_old_temporals = ON; SELECT table_schema, table_name,column_name, column_type FROM information_schema.columns WHERE column_type LIKE '%/* 5.5 binary format */'; SET show_old_temporals = OFF;

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 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 ENUM ou SET 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 ou DESC pour les clauses GROUP 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 d'Unicode, envisagez de convertir les objets qui utilisent le jeu de caractères utf8mb3 pour utiliser le jeu de caractères utf8mb4. Le jeu de caractères utf8mb3 est obsolète. Envisagez également d'utiliser utf8mb4 pour référencer les jeux de caractères au lieu de utf8. Actuellement, utf8 est un alias du jeu de caractères utf8mb3.

    Pour en savoir plus, consultez Le jeu de caractères utf8mb3 (encodage Unicode 3 octets en UTF-8) dans la documentation MySQL.

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 dans la documentation 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.

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 vérifications préalables, elle 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.

Note

Amazon RDS n'exécute ces vérifications préalables que pour une mise à niveau de MySQL 5.7 vers MySQL 8.0. Pour une mise à niveau de MySQL 5.6 vers MySQL 5.7, les vérifications préalables se limitent à confirmer qu'il n'y a pas de tables orphelines et qu'il y a suffisamment d'espace de stockage pour reconstruire les tables. Elles ne sont pas exécutées pour les mises à niveau vers une version antérieure à MySQL 5.7.

Restauration après l'échec de la mise à niveau de MySQL 5.7 vers 8.0

Lorsque vous mettez à niveau une instance de base de données de MySQL version 5.7 vers MySQL version 8.0, 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. À 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 MySQL version 5.7. 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 :

Note

Actuellement, la restauration automatique après l'échec de la mise à niveau est prise en charge uniquement pour les mises à niveau majeures de MySQL 5.7 vers 8.0.

Test d'une mise à niveau

Avant d'effectuer une mise à niveau de version majeure sur votre instance de base de données, testez soigneusement la compatibilité de votre base de données avec la nouvelle version. En outre, vous devez tester soigneusement la compatibilité de toutes les applications qui accèdent à la base de données avec la nouvelle version. Nous vous recommandons d'utiliser la procédure suivante.

Pour tester une mise à niveau de version majeure
  1. Passez en revue la documentation de la mise à niveau pour la nouvelle version du moteur de base de données afin de voir si des problèmes de compatibilité peuvent affecter votre base de données ou vos applications :

  2. Si votre instance de base de données est membre d'un groupe de paramètres de base de données personnalisé, créez un nouveau groupe de paramètres de base de données avec vos paramètres existants, qui soit compatible avec la nouvelle version majeure. Spécifiez le nouveau groupe de paramètres de base de données lorsque vous mettez à niveau votre instance de test afin que les tests de mise à niveau puissent vérifier son bon fonctionnement. Pour de plus amples informations sur la création d'un groupe de paramètres de base de données, veuillez consulter Groupes de paramètres pour Amazon RDS.

  3. Créez un instantané de base de données de l'instance de base de données à mettre à niveau. Pour plus d'informations, consultez Création d'un instantané de base de données pour une instance de base de données mono-AZ.

  4. Restaurez l'instantané de base de données pour créer une nouvelle instance de base de données de test. Pour plus d'informations, consultez Restauration vers une instance de base de données.

  5. Modifiez cette nouvelle instance de base de données de test pour la mettre à niveau vers la nouvelle version, en utilisant l'une des méthodes détaillées plus loin. Si vous avez créé un groupe de paramètres à l'étape 2, spécifiez ce groupe de paramètres.

  6. Évaluez le stockage utilisé par l'instance mise à niveau pour déterminer si la mise à niveau requiert un stockage supplémentaire.

  7. Exécutez sur l'instance de base de données mise à niveau autant de tests d'assurance qualité que nécessaire pour garantir que votre base de données et votre application fonctionnent correctement avec la nouvelle version. Implémentez tous les nouveaux tests requis pour évaluer l'impact des éventuels problèmes de compatibilité que vous avez identifiés à l'étape 1. Testez toutes les fonctions et procédures stockées. Dirigez les versions de test de vos applications vers l'instance de base de données mise à niveau.

  8. En cas de succès de tous les tests, effectuez la mise à niveau sur votre instance de base de données de production. Nous vous recommandons de ne pas autoriser les opérations d'écriture sur l'instance de base de données tant que vous n'avez pas confirmé que tout fonctionne correctement.

Mise à niveau d'une instance de base de données MySQL

Pour de plus amples informations sur la mise à niveau manuelle ou automatique d'une instance de base de données MySQL, veuillez consulter Mise à niveau de la version du moteur d'une instance de base de données.

Mises à niveau automatiques des versions mineures pour MySQL

Si vous spécifiez les paramètres suivants lors de la création ou de la modification d'une instance de base de données, celle-ci peut être mise à niveau automatiquement.

  • Le paramètre Mise à niveau automatique des versions mineures est activé.

  • Le paramètre Période de conservation des sauvegardes est supérieur à 0.

Dans le AWS Management Console, ces paramètres se trouvent sous Configuration supplémentaire. L'image suivante illustre le réglage Auto minor version upgrade (Mise à niveau automatique de versions mineures).

La section Maintenance avec Activer la mise à niveau automatique des versions mineures est sélectionnée dans la console Amazon RDS.

Pour plus d’informations sur ces paramètres, consultez la page Paramètres des instances de base de données.

Pour certaines versions majeures de RDS for MySQL Régions AWS, une version mineure est désignée par RDS comme version de mise à niveau automatique. Une fois qu'une version mineure a été testée et approuvée par Amazon RDS, la mise à niveau de la version mineure se produit automatiquement pendant votre fenêtre de maintenance. RDS ne définit pas automatiquement les dernières versions mineures publiées comme version de mise à niveau automatique. Avant de désigner une publication de version récente comme version de mise à niveau automatique, RDS prend en compte plusieurs critères, à savoir :

  • Problèmes de sécurité connus

  • Bogues dans la version de la communauté MySQL

  • Stabilité globale du parc depuis la publication de la version mineure

Vous pouvez utiliser la AWS CLI commande suivante pour déterminer la version cible de mise à niveau mineure automatique actuelle pour une version mineure de MySQL spécifiée dans une version spécifique Région AWS.

Pour LinuxmacOS, ou Unix :

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version minor-version \ --region region \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output text

Dans Windows :

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version minor-version ^ --region region ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output text

Par exemple, la AWS CLI commande suivante détermine la cible de mise à niveau mineure automatique pour la version mineure 8.0.11 de MySQL dans l'est des États-Unis (Ohio) ( Région AWS us-east-2).

Pour LinuxmacOS, ou Unix :

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version 8.0.11 \ --region us-east-2 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output table

Dans Windows :

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version 8.0.11 ^ --region us-east-2 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output table

Votre sortie est similaire à ce qui suit.

---------------------------------- | DescribeDBEngineVersions | +--------------+-----------------+ | AutoUpgrade | EngineVersion | +--------------+-----------------+ | False | 8.0.15 | | False | 8.0.16 | | False | 8.0.17 | | False | 8.0.19 | | False | 8.0.20 | | False | 8.0.21 | | True | 8.0.23 | | False | 8.0.25 | +--------------+-----------------+

Dans cet exemple, la valeur de AutoUpgrade est True pour MySQL version 8.0.23. Ainsi, la cible de mise à niveau mineure automatique est la version 8.0.23 de MySQL, comme indiqué dans la sortie.

Une instance de base de données MySQL est automatiquement mise à niveau pendant votre fenêtre de maintenance si les critères suivants sont réunis :

  • Le paramètre Mise à niveau automatique des versions mineures est activé.

  • Le paramètre Période de conservation des sauvegardes est supérieur à 0.

  • L'instance de base de données exécute une version mineure du moteur de base de données qui est inférieure à la version mineure de la mise à niveau automatique actuelle.

Pour plus d'informations, consultez Mise à niveau automatique de la version mineure du moteur.

Utilisation d'un réplica en lecture pour réduire les temps d'arrêt lors de la mise à niveau d'une base de données MySQL

Dans la plupart des cas, un déploiement bleu/vert est la meilleure option pour réduire les temps d'arrêt lors de la mise à niveau d'une instance de base de données MySQL. Pour plus d’informations, consultez Utilisation d'Amazon RDS Blue/Green Deployments pour les mises à jour de bases de données.

Si vous ne pouvez pas utiliser un déploiement bleu/vert et que votre instance de base de données MySQL est en cours d'utilisation avec une application de production, vous pouvez utiliser la procédure suivante pour mettre à niveau la version de la base de données pour votre instance de base de données. Cette procédure peut réduire les temps d'arrêt de votre application.

En utilisant un réplica en lecture, vous pouvez effectuer la plupart des étapes de maintenance à l'avance et ainsi réduire les modifications nécessaires lors d'une panne réelle. Cette technique vous permet de tester et de préparer la nouvelle instance de base de données sans apporter de modifications à votre instance de base de données existante.

La procédure suivante illustre un exemple de mise à niveau de MySQL version 5.7 vers MySQL version 8.0. Vous pouvez utiliser les mêmes étapes générales pour des mises à niveau vers d'autres versions majeures.

Note

Avant de procéder à une mise à niveau de MySQL version 5.7 vers MySQL version 8.0, quelques vérifications sont nécessaires. Pour plus d’informations, consultez Vérifications préalables aux mises à jour de MySQL 5.7 vers 8.0.

Pour mettre à niveau une base de données MySQL alors qu'une instance de base de données est en cours d'utilisation
  1. Connectez-vous à la console Amazon RDS AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/rds/.

  2. Créez un réplica en lecture de votre instance de base de données MySQL 5.7. Ce processus crée une copie pouvant être mise à niveau de votre base de données. D'autres réplicas en lecture de l'instance de base de données peuvent également exister.

    1. Sur la console, choisissez Bases de données, puis sélectionnez l'instance de base de données que vous souhaitez mettre à niveau.

    2. Sous Actions, choisissez Créer des réplicas en lecture.

    3. Spécifiez une valeur dans le champ Identifiant de l'instance de base de données de votre réplica en lecture et assurez-vous que la Classe d'instance de base de données et les autres paramètres correspondent à votre instance de base de données MySQL 5.7.

    4. Choisissez Créer un réplica en lecture.

  3. (Facultatif) Lorsque le réplica en lecture a été créé et que le champ État indique Disponible, convertissez le réplica en lecture en déploiement multi-AZ et activez les sauvegardes.

    Par défaut, un réplica en lecture est créé en tant que déploiement mono-AZ et les sauvegardes sont désactivées. Dans la mesure où le réplica en lecture finira par devenir l'instance de base de données de production, nous vous recommandons de configurer un déploiement multi-AZ et d'activer les sauvegardes dès maintenant.

    1. Sur la console, choisissez Bases de données, puis sélectionnez le réplica en lecture que vous venez de créer.

    2. Sélectionnez Modify.

    3. Dans le champ Déploiement multi-AZ, choisissez Créer une instance de secours.

    4. Dans le champ Backup Retention Period (Période de rétention des sauvegardes), choisissez une valeur positive différente de zéro (par exemple, 3 jours), puis sélectionnez Continue (Continuer).

    5. Pour Scheduling of Modifications (Planification des modifications), choisissez Appliquer immédiatement.

    6. Choisissez Modifier l'instance DB.

  4. Lorsque le champ État du réplica en lecture indique Disponible, procédez à sa mise à niveau vers MySQL 8.0 :

    1. Sur la console, choisissez Bases de données, puis sélectionnez le réplica en lecture que vous venez de créer.

    2. Sélectionnez Modify.

    3. Dans le champ Version du moteur de base de données, choisissez la version de MySQL 8.0 vers laquelle vous souhaitez effectuer la mise à niveau, puis sélectionnez Continuer.

    4. Pour Scheduling of Modifications (Planification des modifications), choisissez Appliquer immédiatement.

    5. Choisissez Modifier l'instance de base de données pour démarrer la mise à niveau.

  5. Lorsque la mise à niveau est terminée et que le statut indique Disponible, vérifiez que la réplique de lecture mise à niveau correspond up-to-date à l'instance de base de données MySQL 5.7 source. Pour vérifier, connectez-vous au réplica en lecture et exécutez la commande SHOW REPLICA STATUS. Si le Seconds_Behind_Master champ l'est0, la réplication l'est up-to-date.

    Note

    Les versions précédentes de MySQL utilisaient SHOW SLAVE STATUS à la place de SHOW REPLICA STATUS. Si vous utilisez une version MySQL antérieure à la version 8.0.23, utilisez alors SHOW SLAVE STATUS.

  6. (Facultatif) Créez un réplica en lecture de votre réplica en lecture.

    Si vous souhaitez que l'instance de base de données dispose d'un réplica en lecture une fois celle-ci promue en tant qu'instance de base de données autonome, vous pouvez créer le réplica en lecture dès maintenant.

    1. Sur la console, choisissez Bases de données, puis sélectionnez le réplica en lecture que vous venez de mettre à niveau.

    2. Sous Actions, choisissez Créer des réplicas en lecture.

    3. Spécifiez une valeur dans le champ Identifiant de l'instance de base de données de votre réplica en lecture et assurez-vous que la Classe d'instance de base de données et les autres paramètres correspondent à votre instance de base de données MySQL 5.7.

    4. Choisissez Créer un réplica en lecture.

  7. (Facultatif) Configurez un groupe de paramètres de base de données personnalisé pour le réplica en lecture.

    Si vous souhaitez que l'instance de base de données utilise un groupe de paramètres personnalisé une fois celle-ci promue en tant qu'instance de base de données autonome, vous pouvez créer le groupe de paramètres de base de données dès maintenant et l'associer au réplica en lecture.

    1. Créez un groupe de paramètres de base de données personnalisé pour MySQL 8.0. Pour obtenir des instructions, consultez Création d'un groupe de paramètres de base de données dans RDSAmazon.

    2. Modifiez les paramètres que vous souhaitez modifier dans le groupe de paramètres de base de données fraîchement créé. Pour obtenir des instructions, consultez Modification des paramètres d'un groupe de paramètres de base de données dans Amazon RDS.

    3. Sur la console, choisissez Bases de données, puis sélectionnez le réplica en lecture.

    4. Sélectionnez Modify.

    5. Dans le champ Groupe de paramètres de base de données, choisissez le groupe de paramètres de base de données MySQL 8.0 que vous venez de créer, puis sélectionnez Continuer.

    6. Pour Scheduling of Modifications (Planification des modifications), choisissez Appliquer immédiatement.

    7. Choisissez Modifier l'instance de base de données pour démarrer la mise à niveau.

  8. Faites de votre réplica en lecture MySQL 8.0 une instance de base de données autonome.

    Important

    Une fois promu en tant qu'instance de base de données autonome, votre réplica en lecture MySQL 8.0 cesse d'être un réplica de votre instance de base de données MySQL 5.7. Nous vous conseillons d'effectuer la promotion de votre réplica en lecture MySQL 8.0 au cours d'un créneau de maintenance, lorsque votre instance de base de données MySQL 5.7 source est en mode lecture seule et que toutes les opérations d'écriture sont suspendues. Au terme de l'opération de promotion, vous pouvez diriger vos opérations d'écriture vers l'instance de base de données MySQL 8.0 mise à niveau pour veiller à ce qu'aucune opération d'écriture ne se perde.

    En outre, avant la promotion de votre réplica en lecture MySQL 8.0, nous vous conseillons d'effectuer toutes les opérations DDL (Data Definition Language) nécessaires sur votre réplica en lecture MySQL 8.0. Par exemple, la création d'index. Cette approche permet d'éviter tout effet négatif sur les performances du réplica en lecture MySQL 8.0 après sa promotion. Pour promouvoir un réplica en lecture.

    1. Sur la console, choisissez Bases de données, puis sélectionnez le réplica en lecture que vous venez de mettre à niveau.

    2. Pour Actions, choisissez Promote (Promouvoir).

    3. Choisissez Oui pour activer les sauvegardes automatiques pour l'instance du réplica en lecture. Pour plus d'informations, consultez Présentation des sauvegardes.

    4. Choisissez Continuer.

    5. Choisissez Promouvoir le réplica en lecture.

  9. Vous disposez à présent d'une version mise à niveau de votre base de données MySQL. À ce stade, vous pouvez diriger vos applications vers la nouvelle instance de base de données MySQL 8.0.