Tutoriel de mise à niveau SQL sur place d'Aurora My - Amazon Aurora

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.

Tutoriel de mise à niveau SQL sur place d'Aurora My

Les exemples Linux suivants montrent comment effectuer les étapes générales de la procédure de mise à niveau sur place à l'aide du AWS CLI.

Ce premier exemple crée un cluster de base de données Aurora qui exécute une version 2.x d'Aurora MySQL. Le cluster comprend une instance de base de données de scripteur et une instance de base de données de lecteur. La commande wait db-instance-available se suspend tant que l'instance de base de données du scripteur n'est pas disponible. C'est là que le cluster est prêt à être mis à niveau.

aws rds create-db-cluster --db-cluster-identifier mynewdbcluster --engine aurora-mysql \ --db-cluster-version 5.7.mysql_aurora.2.10.2 ... aws rds create-db-instance --db-instance-identifier mynewdbcluster-instance1 \ --db-cluster-identifier mynewdbcluster --db-instance-class db.t4g.medium --engine aurora-mysql ... aws rds wait db-instance-available --db-instance-identifier mynewdbcluster-instance1

Les versions d'Aurora My SQL 3.x pour lesquelles vous pouvez mettre à niveau le cluster dépendent de la version 2.x que le cluster exécute actuellement et du Région AWS où se trouve le cluster. La première commande, avec --output text, montre simplement la version cible disponible. La deuxième commande affiche le JSON résultat complet de la réponse. Dans cette réponse, vous pouvez voir des détails tels que la valeur aurora-mysql que vous utilisez pour le paramètre engine. Vous pouvez également voir le fait que la mise à niveau vers 3.02.0 représente une mise à niveau de version majeure.

aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \ --query '*[].{EngineVersion:EngineVersion}' --output text 5.7.mysql_aurora.2.10.2 aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.10.2 \ --query '*[].[ValidUpgradeTarget]' ... { "Engine": "aurora-mysql", "EngineVersion": "8.0.mysql_aurora.3.02.0", "Description": "Aurora MySQL 3.02.0 (compatible with MySQL 8.0.23)", "AutoUpgrade": false, "IsMajorVersionUpgrade": true, "SupportedEngineModes": [ "provisioned" ], "SupportsParallelQuery": true, "SupportsGlobalDatabases": true, "SupportsBabelfish": false }, ...

Cet exemple montre pourquoi, si vous saisissez un numéro de version cible qui n'est pas une cible de mise à niveau valide pour le cluster, Aurora n'effectue pas la mise à niveau. Aurora n'effectue pas non plus de mise à niveau de version majeure, sauf si vous incluez le paramètre --allow-major-version-upgrade. Ainsi, vous ne pouvez pas effectuer par erreur une mise à niveau susceptible de nécessiter des tests approfondis et des modifications du code de votre application.

aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \ --engine-version 5.7.mysql_aurora.2.09.2 --apply-immediately An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: Cannot find upgrade target from 5.7.mysql_aurora.2.10.2 with requested version 5.7.mysql_aurora.2.09.2. aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \ --engine-version 8.0.mysql_aurora.3.02.0 --region us-east-1 --apply-immediately An error occurred (InvalidParameterCombination) when calling the ModifyDBCluster operation: The AllowMajorVersionUpgrade flag must be present when upgrading to a new major version. aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \ --engine-version 8.0.mysql_aurora.3.02.0 --apply-immediately --allow-major-version-upgrade { "DBClusterIdentifier": "mynewdbcluster", "Status": "available", "Engine": "aurora-mysql", "EngineVersion": "5.7.mysql_aurora.2.10.2" }

Quelques instants sont nécessaires pour que l'état du cluster et des instances de base de données associées passe à upgrading. Les numéros de version du cluster et des instances de base de données ne changent que lorsque la mise à niveau est terminée. Encore une fois, vous pouvez utiliser la commande wait db-instance-available pour l'instance de base de données du scripteur afin d'attendre la fin de la mise à niveau avant de poursuivre.

aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \ --query '*[].[Status,EngineVersion]' --output text upgrading 5.7.mysql_aurora.2.10.2 aws rds describe-db-instances --db-instance-identifier mynewdbcluster-instance1 \ --query '*[].{DBInstanceIdentifier:DBInstanceIdentifier,DBInstanceStatus:DBInstanceStatus} | [0]' { "DBInstanceIdentifier": "mynewdbcluster-instance1", "DBInstanceStatus": "upgrading" } aws rds wait db-instance-available --db-instance-identifier mynewdbcluster-instance1

À ce stade, le numéro de version du cluster correspond à celui spécifié pour la mise à niveau.

aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \ --query '*[].[EngineVersion]' --output text 8.0.mysql_aurora.3.02.0

L'exemple précédent représente une mise à niveau immédiate en spécifiant le paramètre --apply-immediately. Pour que la mise à niveau se produise à un moment opportun, lorsque le cluster ne devrait pas être occupé, vous pouvez spécifier le paramètre --no-apply-immediately. Il permet de lancer la mise à niveau lors de la prochaine fenêtre de maintenance du cluster. La fenêtre de maintenance définit la période pendant laquelle les opérations de maintenance peuvent commencer. Une opération de longue durée ne doit pas nécessairement se terminer pendant la fenêtre de maintenance. Par conséquent, vous n'avez pas besoin de définir une fenêtre de maintenance plus grande, même si vous pensez que la mise à niveau peut prendre beaucoup de temps.

L'exemple suivant met à niveau un cluster qui exécute initialement Aurora My SQL version 2.10.2. Dans la sortie describe-db-engine-versions, les valeurs False et True représentent la propriété IsMajorVersionUpgrade. À partir de la version 2.10.2, vous pouvez effectuer une mise à niveau vers d'autres versions 2.*. Ces mises à niveau ne sont pas considérées comme des mises à niveau de version majeures et ne nécessitent donc pas de mise à niveau sur place. La mise à niveau sur place n'est disponible que pour les mises à niveau vers les versions 3.* répertoriées dans la liste.

aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \ --query '*[].{EngineVersion:EngineVersion}' --output text 5.7.mysql_aurora.2.10.2 aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.10.2 \ --query '*[].[ValidUpgradeTarget]|[0][0]|[*].[EngineVersion,IsMajorVersionUpgrade]' --output text 5.7.mysql_aurora.2.10.3 False 5.7.mysql_aurora.2.11.0 False 5.7.mysql_aurora.2.11.1 False 8.0.mysql_aurora.3.01.1 True 8.0.mysql_aurora.3.02.0 True 8.0.mysql_aurora.3.02.2 True aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \ --engine-version 8.0.mysql_aurora.3.02.0 --no-apply-immediately --allow-major-version-upgrade ...

Lorsqu'un cluster est créé sans fenêtre de maintenance spécifiée, Aurora choisit un jour de la semaine de manière aléatoire. Ici, la commande modify-db-cluster est soumise un lundi. Nous modifions la fenêtre de maintenance et la définissons sur mardi matin. Toutes les heures sont représentées dans le UTC fuseau horaire. La fenêtre tue:10:00-tue:10:30 correspond à 2h00-2h30, heure du Pacifique. Les modifications de la fenêtre de maintenance prennent effet immédiatement.

aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster --query '*[].[PreferredMaintenanceWindow]' [ [ "sat:08:20-sat:08:50" ] ] aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster --preferred-maintenance-window tue:10:00-tue:10:30" aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster --query '*[].[PreferredMaintenanceWindow]' [ [ "tue:10:00-tue:10:30" ] ]

L'exemple suivant montre comment obtenir un rapport sur les événements générés par la mise à niveau. L'argument --duration représente le nombre de minutes nécessaire pour récupérer les informations d'événement. Cet argument est nécessaire, car par défaut, describe-events seuls les événements de la dernière heure sont renvoyés.

aws rds describe-events --source-type db-cluster --source-identifier mynewdbcluster --duration 20160 { "Events": [ { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "DB cluster created", "EventCategories": [ "creation" ], "Date": "2022-11-17T01:24:11.093000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Performing online pre-upgrade checks.", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T22:57:08.450000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Performing offline pre-upgrade checks.", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T22:57:59.519000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Creating pre-upgrade snapshot [preupgrade-mynewdbcluster-5-7-mysql-aurora-2-10-2-to-8-0-mysql-aurora-3-02-0-2022-11-18-22-55].", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T23:00:22.318000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Cloning volume.", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T23:01:45.428000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Purging undo records for old row versions. Records remaining: 164", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T23:02:25.141000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Purging undo records for old row versions. Records remaining: 164", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T23:06:23.036000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Upgrade in progress: Upgrading database objects.", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T23:06:48.208000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" }, { "SourceIdentifier": "mynewdbcluster", "SourceType": "db-cluster", "Message": "Database cluster major version has been upgraded", "EventCategories": [ "maintenance" ], "Date": "2022-11-18T23:10:28.999000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mynewdbcluster" } ] }