Aurora — Mein SQL Upgrade-Tutorial vor Ort - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aurora — Mein SQL Upgrade-Tutorial vor Ort

Die folgenden Linux-Beispiele zeigen, wie Sie die allgemeinen Schritte des direkten Upgrade-Verfahrens mithilfe des AWS CLI.

In diesem ersten Beispiel wird ein Aurora-DB-Cluster erstellt, auf dem eine 2.x-Version von Aurora My SQL ausgeführt wird. Der Cluster enthält eine Writer-DB-Instance und eine Reader-DB-Instance Der Befehl wait db-instance-available pausiert, bis die Writer-DB-Instanz verfügbar ist. Das ist der Punkt, an dem der Cluster für ein Upgrade bereit ist.

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

Die Aurora My SQL 3.x-Versionen, auf die Sie den Cluster aktualisieren können, hängen von der 2.x-Version ab, die der Cluster derzeit ausführt, und von der AWS-Region wo sich der Cluster befindet. Der erste Befehl mit --output text zeigt nur die verfügbare Zielversion an. Der zweite Befehl zeigt die vollständige JSON Ausgabe der Antwort. Diese Antwort enthält Details wie den aurora-mysql-Wert, den Sie für den engine-Parameter verwenden. Sie können auch sehen, dass ein Upgrade auf 3.02.0 ein Hauptversions-Upgrade darstellt.

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 }, ...

Dieses Beispiel zeigt, dass Aurora das Upgrade nicht durchführt, wenn Sie eine Zielversionsnummer eingeben, die kein gültiges Upgrade-Ziel für den Cluster ist. Aurora führt auch kein Hauptversions-Upgrade durch, es sei denn, Sie geben den Parameter --allow-major-version-upgrade an. Auf diese Weise können Sie nicht versehentlich ein Upgrade durchführen, das umfangreiche Tests und Änderungen an Ihrem Anwendungscode erfordert.

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" }

Es dauert einige Augenblicke, bis sich der Status des Clusters und der zugehörigen DB-Instances auf änder upgrading. Die Versionsnummern für die Cluster- und DB-Instances ändern sich erst, wenn das Upgrade abgeschlossen ist. Auch hier können Sie den wait db-instance-available-Befehl verwenden, damit die Writer-DB-Instance wartet, bis das Upgrade abgeschlossen ist, bevor Sie fortfahren.

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

Zu diesem Zeitpunkt entspricht die Versionsnummer für den Cluster der Nummer, die für das Upgrade angegeben wurde.

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

Das vorhergehende Beispiel führte ein sofortiges Upgrade durch Angabe des --apply-immediately-Parameters durch. Damit das Upgrade zu einem geeigneten Zeitpunkt durchgeführt wird, zu dem nicht zu erwarten ist, dass der Cluster ausgelastet ist, können Sie den Parameter --no-apply-immediately festlegen. Dadurch wird das Upgrade während des nächsten Wartungsfensters für den Cluster gestartet. Das Wartungsfenster definiert den Zeitraum, in dem Wartungsvorgänge beginnen können. Ein lang andauernder Vorgang kann während des Wartungsfensters möglicherweise nicht beendet werden. Daher müssen Sie kein größeres Wartungsfenster definieren, selbst wenn Sie davon ausgehen, dass das Upgrade sehr lange dauern kann.

Im folgenden Beispiel wird ein Cluster aktualisiert, auf dem ursprünglich Aurora My SQL Version 2.10.2 ausgeführt wird. In der Ausgabe describe-db-engine-versions stellen die Werte False und True die Eigenschaft IsMajorVersionUpgrade dar. Ab Version 2.10.2 können Sie auf andere 2.*-Versionen aktualisieren. Diese Upgrades gelten nicht als Hauptversions-Upgrades und erfordern daher kein direktes Upgrade. Ein direktes Upgrade ist nur für die 3.*-Versionen verfügbar, die in der Liste aufgeführt sind.

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 ...

Wenn ein Cluster ohne ein festgelegtes Wartungsfenster erstellt wird, wählt Aurora einen zufälligen Wochentag aus. In diesem Fall wird der Befehl modify-db-cluster an einem Montag gesendet. Daher ändern wir das Wartungsfenster auf Dienstagmorgen. Alle Zeiten werden in der UTC Zeitzone dargestellt. Das Fenster tue:10:00-tue:10:30 entspricht 2:00 - 2:30 Uhr Pacific Time. Die Änderung des Wartungsfensters wird sofort wirksam.

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" ] ]

Das folgende Beispiel zeigt, wie ein Bericht über die durch das Upgrade generierten Ereignisse abgerufen wird. Das Argument --duration gibt die Anzahl der Minuten an, die für den Abruf der Ereignisinformationen erforderlich sind. Dieses Argument ist erforderlich, da standardmäßig describe-events nur Ereignisse der letzten Stunde zurückgegeben werden.

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" } ] }