

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.

# Datenbank-Engine-Updates für Amazon Aurora MySQL
<a name="AuroraMySQL.Updates"></a><a name="mysql_relnotes"></a>

Amazon Aurora veröffentlicht regelmäßig Updates. Updates werden auf Aurora-DB-Cluster während des Wartungszeitraums angewendet. Zu welchem Zeitpunkt Updates angewandt werden, hängt von den Einstellungen für die Region und den Wartungszeitraum für das DB-Cluster sowie vom Typ des Updates ab. 

Amazon-Aurora-Versionen werden im Laufe mehrerer Tage allen AWS-Regionen zur Verfügung gestellt. Einige Regionen zeigen möglicherweise vorübergehend eine Engine-Version an, die in einer anderen Region noch nicht verfügbar ist.

 Updates werden auf alle Instances in einem DB-Cluster gleichzeitig angewendet. Ein Update erfordert einen Neustart einer Datenbank auf allen Instances in einem DB-Cluster. Daher dauert es 20 bis 30 Sekunden, bis Sie wieder mit der Verwendung Ihrer DB-Cluster fortfahren können. Sie können die Einstellungen für den Wartungszeitraum in der anzeigen und ändern [AWS-Managementkonsole](https://console.aws.amazon.com/). 

Weitere Informationen zu den Aurora-MySQL-Versionen, die von Amazon Aurora unterstützt werden, finden Sie in den [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/Welcome.html).

 Im Folgenden erfahren Sie, wie Sie die richtige Aurora MySQL-Version für Ihren Cluster auswählen, wie Sie die Version beim Erstellen oder Aktualisieren eines Clusters angeben, und wie Sie mit minimaler Unterbrechung einen Cluster von einer Version auf eine andere aktualisieren können. 

**Topics**
+ [Überprüfen von Aurora-MySQL-Versionsnummern](AuroraMySQL.Updates.Versions.md)
+ [LTS-Versionen (Long-Term-Support, Langzeit-Support) und Betaversionen für Amazon Aurora MySQL](AuroraMySQL.Update.SpecialVersions.md)
+ [Vorbereitung auf das Ende des Standard-Supports für die Amazon-Aurora-MySQL-kompatible Edition der Version 2](Aurora.MySQL57.EOL.md)
+ [Vorbereitung auf das Lebenszyzklusende der Amazon Aurora MySQL-kompatible Edition Version 1](Aurora.MySQL56.EOL.md)
+ [Upgrade von Amazon Aurora MySQL-DB-Clustern](AuroraMySQL.Updates.Upgrading.md)
+ [Datenbank-Engine-Updates und -Korrekturen für Amazon Aurora MySQL](AuroraMySQL.Updates.RN.md)

# Überprüfen von Aurora-MySQL-Versionsnummern
<a name="AuroraMySQL.Updates.Versions"></a>

 Obwohl Aurora MySQL-kompatible Edition mit den MySQL-Datenbank-Engines kompatibel ist, enthält Aurora MySQL Funktionen und Bugfixes, die spezifisch für bestimmte Aurora MySQL-Versionen sind. Anwendungsentwickler können die Aurora MySQL-Version in ihren Anwendungen mithilfe von SQL überprüfen. Datenbankadministratoren können beim Erstellen oder Aktualisieren von Aurora MySQL-DB-Clustern und DB-Instances Aurora MySQL-Versionen überprüfen und angeben. 

**Topics**
+ [Prüfen oder Angeben von Aurora-MySQL-Engine-Versionen über AWS](#AuroraMySQL.Updates.EngineVersions)
+ [Überprüfen von Aurora MySQL-Versionen mit SQL](#AuroraMySQL.Updates.DBVersions)

## Prüfen oder Angeben von Aurora-MySQL-Engine-Versionen über AWS
<a name="AuroraMySQL.Updates.EngineVersions"></a>

 Wenn Sie administrative Aufgaben mit der AWS-Managementkonsole-, AWS CLI- oder RDS-API ausführen, geben Sie die Aurora-MySQL-Version in einem alphanumerischen Format an. 

 Seit Aurora-MySQL-Version 2 wird für Aurora-Engine-Versionen die folgende Syntax verwendet. 

```
mysql-major-version.mysql_aurora.aurora-mysql-version
```

 Der `mysql-major-version-`-Anteil ist `5.7` oder `8.0`. Dieser Wert stellt die Version des Clientprotokolls und die allgemeine Ebene der MySQL-Funktionsunterstützung für die entsprechende Aurora MySQL-Version dar. 

 `aurora-mysql-version` ist ein gepunkteter Wert mit drei Teilen: der Aurora MySQL-Hauptversion, der Aurora MySQL-Nebenversion und der Patch-Ebene. Die Hauptversion ist `2` oder `3`. Diese Werte stellen Aurora MySQL dar, das mit MySQL 5.7 bzw. 8.0 kompatibel ist. Die Unterversion stellt die Funktionsversion innerhalb der 2.x- oder 3.x-Serie dar. Die Patch-Ebene beginnt bei `0` für jede Nebenversion und stellt die Reihe der nachfolgenden Bugfixes dar, die für die Nebenversion gelten. Gelegentlich wird eine neue Funktion in eine Nebenversion integriert, aber nicht sofort sichtbar gemacht. In diesen Fällen wird die Funktion einer Optimierung unterzogen und in einem späteren Patch-Stufe veröffentlicht. 

Alle 2.x-Engine-Versionen von Aurora MySQL sind mit Community MySQL 5.7.12 oder höher drahtkompatibel. Alle 3.x-Engine-Versionen von Aurora MySQL sind mit MySQL 8.0.23 oder höher drahtkompatibel. Sie können auf Versionshinweise einer bestimmten 3.x-Version zurückgreifen, um die entsprechende MySQL-kompatible Version zu finden.

Zum Beispiel sind die Engine-Versionen für Aurora MySQL 3.04.0 und 2.11.2 die folgenden.

```
8.0.mysql_aurora.3.04.0
5.7.mysql_aurora.2.11.2
```

**Anmerkung**  
Es gibt keine Eins-zu-Eins-Korrespondenz zwischen den Community-MySQL-Versionen und den Aurora-MySQL-2.x-Versionen. Für Aurora-MySQL-Version 3 gibt es ein direkteres Mapping. Um zu überprüfen, welche Bugfixes und neuen Funktionen in einer bestimmten Aurora-MySQL-Version enthalten sind, lesen Sie [Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) und [ Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.20Updates.html) in den *Versionshinweisen für Aurora MySQL*. Eine chronologische Liste der neuen Funktionen und Releases finden Sie unter [Dokumentverlauf](WhatsNew.md). Informationen zum Überprüfen der Mindestversion, die für eine sicherheitsbezogene Fehlerbehebung erforderlich ist, finden Sie unter [In Aurora MySQL behobene Sicherheitsschwachstellen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.CVE_list.html) in den *Versionshinweisen für Aurora MySQL*.

Sie können die Aurora-MySQL-Engine-Version bei einigen AWS CLI-Befehlen und RDS-API-Operationen angeben. Beispielsweise geben Sie die `--engine-version`-Option an, wenn Sie die AWS CLI-Befehle [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) und [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) ausführen. Sie geben den Parameter `EngineVersion` an, wenn Sie die RDS-API-Operationen [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) und [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) ausführen.

In Aurora-MySQL-Version 2 und höher enthält die Engine-Version in der AWS-Managementkonsole auch die Aurora-Version. Beim Upgraden des Clusters ändert sich der angezeigte Wert. Diese Änderung hilft Ihnen, die genauen Aurora MySQL-Versionen anzugeben und zu überprüfen, ohne dass Sie eine Verbindung zum Cluster herstellen oder SQL-Befehle ausführen müssen.

**Tipp**  
Für Aurora-Cluster, die über CloudFormation verwaltet werden, kann diese Änderung in der `EngineVersion`-Einstellung Aktionen von CloudFormation auslösen. Weitere Informationen dazu, wie CloudFormation Änderungen an der Einstellung `EngineVersion` behandelt werden, finden Sie in[der CloudFormationDokumentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html).

## Überprüfen von Aurora MySQL-Versionen mit SQL
<a name="AuroraMySQL.Updates.DBVersions"></a>

 Die Aurora-Versionsnummern, die Sie in Ihrer Anwendung mit SQL-Abfragen abrufen können, verwenden das Format `<major version>.<minor version>.<patch version>`. Sie können diese Versionsnummer für jede DB-Instance in Ihrem Aurora MySQL-Cluster abrufen, indem Sie die `AURORA_VERSION`-Systemvariable abfragen. Verwenden Sie eine der folgenden Abfragen, um diese Versionsnummer zu erhalten. 

```
select aurora_version();
select @@aurora_version;
```

 Diese Abfragen erzeugen eine Ausgabe ähnlich der folgenden. 

```
mysql> select aurora_version(), @@aurora_version;
+------------------+------------------+
| aurora_version() | @@aurora_version |
+------------------+------------------+
| 3.05.2           | 3.05.2           |
+------------------+------------------+
```

 Die Versionsnummern, die von der Konsole, CLI und der RDS-API mit den unter [Prüfen oder Angeben von Aurora-MySQL-Engine-Versionen über AWS](#AuroraMySQL.Updates.EngineVersions) beschriebenen Techniken zurückgegeben werden, sind in der Regel aussagekräftiger.

# LTS-Versionen (Long-Term-Support, Langzeit-Support) und Betaversionen für Amazon Aurora MySQL
<a name="AuroraMySQL.Update.SpecialVersions"></a>

Aurora MySQL bietet LTS-Versionen (Long-Term-Support, Langzeit-Support) und Betaversionen für einige Engine-Versionen von Aurora MySQL. 

**Topics**
+ [Aurora MySQL Long-Term Support- (LTS, Langzeit-Support) Versionen](#AuroraMySQL.Updates.LTS)
+ [Aurora-MySQL-Betaversionen](#AuroraMySQL.Updates.Beta)

## Aurora MySQL Long-Term Support- (LTS, Langzeit-Support) Versionen
<a name="AuroraMySQL.Updates.LTS"></a>

Jede neue Aurora MySQL-Version bleibt für eine bestimmte Zeit zum Erstellen oder Aktualisieren eines DB-Clusters verfügbar. Nach diesem Zeitraum müssen Sie alle Cluster aktualisieren, die diese Version verwenden. Sie können Ihren Cluster vor Ablauf des Supportzeitraums manuell aktualisieren, oder Aurora kann ihn automatisch für Sie aktualisieren, wenn die Aurora MySQL-Version nicht mehr unterstützt wird.

Aurora bezeichnet bestimmte Aurora MySQL-Versionen als „Long-term Support“ (LTS, Langzeitsupport)-Versionen. DB-Cluster, die LTS-Versionen verwenden, können länger dieselbe Version nutzen und weniger Upgradezyklen durchlaufen als Cluster, die Nicht-LTS-Versionen verwenden. Datenbank-Cluster, die LTS-Versionen verwenden, können mindestens drei Jahre dieselbe Nebenversion nutzen, oder bis zum Ende des Standard-Supports für die Hauptversion, je nachdem, was zuerst eintritt. Wenn ein DB-Cluster mit einer LTS-Version ein Upgrade benötigt, aktualisiert Aurora ihn auf die nächste LTS-Version. Auf diese Weise muss lange Zeit kein erneutes Upgrade für den Cluster durchgeführt werden.

Während der Lebensdauer einer Aurora MySQL-LTS-Version sorgen neue Patchlevels für Korrekturen bei wichtigen Problemen. Die Patchlevels enthalten keine neuen Funktionen. Sie können wählen, ob Sie solche Patches auf DB-Cluster anwenden möchten, die die LTS-Version ausführen. Wir empfehlen Kunden, die LTS-Versionen ausführen, mindestens einmal im Jahr ein Upgrade auf die neueste Patch-Version der LTS-Nebenversion durchzuführen, um von Sicherheits- und Betriebskorrekturen mit hohem Schweregrad zu profitieren. Für bestimmte kritische Korrekturen kann Amazon innerhalb derselben LTS-Version ein verwaltetes Upgrade auf einen Patchlevel durchführen. Solche verwalteten Upgrades werden automatisch innerhalb des Wartungsfensters des Clusters durchgeführt. Alle Aurora-MySQL-Versionen (sowohl LTS- als auch Nicht-LTS-Versionen) werden umfangreichen Stabilitäts- und Betriebstests unterzogen. Ausgewählte Nebenversionen werden als LTS-Versionen festgelegt, damit Kunden diese Nebenversionen länger verwenden können, ohne auf eine neuere Nebenversion aktualisieren zu müssen. 

Wir empfehlen, dass Sie für die meisten Ihrer Aurora MySQL-Cluster auf die neueste Version upgraden, anstatt die LTS-Version zu verwenden. Auf diese Weise wird Aurora als Managed verwalteter Service genutzt und Sie erhalten Zugriff auf die neuesten Funktionen und Bugfixes. Die LTS-Releases sind für Cluster mit folgenden Merkmalen gedacht:
+ Sie können sich, abgesehen von seltenen Fällen, keine Upgrade-Ausfallzeiten Ihrer Aurora MySQL-Anwendung für kritische Patches leisten. 
+ Der Testzyklus für den Cluster und die zugehörigen Anwendungen dauert bei einer Aktualisierung der Aurora MySQL-Datenbank-Engine sehr lange. 
+ Die Datenbankversion für Ihren Aurora MySQL-Cluster enthält alle Funktionen der DB-Engine und Bugfixes, die Ihre Anwendung benötigt.

Die aktuellen LTS-Versionen für Aurora MySQL sind:
+ Aurora-MySQL-Version 3.10.\$1. 
+ Aurora MySQL Version 3.04.\$1. 

Weitere Informationen zur LTS-Version finden Sie unter [Datenbank-Engine-Updates für Amazon Aurora MySQL Version 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) in den *Versionshinweisen für Aurora MySQL*.

**Anmerkung**  
Wir empfehlen, automatische Nebenversions-Upgrades für LTS-Versionen zu deaktivieren. Setzen Sie den Parameter `AutoMinorVersionUpgrade` auf `false` oder deaktivieren Sie das Kontrollkästchen **Automatische Aktualisierung von Unterversionen aktivieren** in der AWS-Managementkonsole.  
Wenn Sie es nicht deaktivieren, kann Ihr DB-Cluster auf eine Nicht-LTS-Version aktualisiert werden.

## Aurora-MySQL-Betaversionen
<a name="AuroraMySQL.Updates.Beta"></a>

Bei einer Aurora MySQL-Betaversion handelt es sich um ein frühes Sicherheitsupdate, das nur in einer begrenzten Anzahl von Versionen verfügbar ist. AWS-Regionen Diese Korrekturen werden später mit der nächsten Patch-Version in größerem Umfang in allen Regionen verfügbar sein.

Die Nummerierung für eine Betaversion ähnelt der einer Aurora-MySQL-Nebenversion, jedoch mit einer zusätzlichen vierten Ziffer, zum Beispiel 2.12.0.1 oder 3.05.0.1.

Weitere Informationen finden Sie unter [Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.20Updates.html) und [Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html) in den *Versionshinweisen für Aurora MySQL*.

# Vorbereitung auf das Ende des Standard-Supports für die Amazon-Aurora-MySQL-kompatible Edition der Version 2
<a name="Aurora.MySQL57.EOL"></a>

Die Amazon-Aurora-MySQL-kompatible Edition der Version 2 (mit MySQL-5.7-Kompatibilität) soll am 31. Oktober 2024 das Ende des Standard-Supports erreichen. Wir empfehlen, alle Cluster mit Aurora-MySQL-Version 2 zur Standard–Aurora-MySQL-Version 3 (mit MySQL-8.0-Kompatibilität) oder höher zu aktualisieren, bevor Aurora-MySQL-Version 2 das Ende des Standard-Supportzeitraums erreicht. Am 31. Oktober 2024 registriert Amazon RDS Ihre Datenbanken automatisch beim [erweiterten Amazon-RDS-Support](extended-support.md). Wenn Sie Amazon-Aurora-MySQL-Version 2 (mit MySQL-5.7-Kompatibilität) in einem Cluster von Aurora Serverless-Version 1 ausführen, gilt dies nicht für Sie. Wenn Sie Ihre Cluster von Aurora Serverless-Version 1 auf Aurora-MySQL-Version 3 aktualisieren möchten, finden Sie weitere Informationen unter [Upgrade-Pfad für Aurora Serverless v1-DB-Cluster](#Aurora-Upgrade-Serverlessv1-Clusters).

Die nächsten end-of-support Termine für Aurora MySQL-Hauptversionen finden Sie im [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.major](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html#AuroraMySQL.release-calendars.major).

Wenn Sie Cluster haben, auf denen Aurora-MySQL-Version 2 ausgeführt wird, erhalten Sie regelmäßig Benachrichtigungen mit den neuesten Informationen darüber, wie Sie ein Upgrade durchführen, sobald wir uns dem Datum des Endes des Standard-Supports nähern. Wir werden diese Seite regelmäßig mit den neuesten Informationen aktualisieren.

## Ende des Standard-Supportzeitplans
<a name="timeline"></a>

1. Jetzt bis zum 31. Oktober 2024 – Sie können jederzeit Upgrades von Aurora-MySQL-Clustern der Version 2 (mit MySQL 5.7-Kompatibilität) auf Aurora MySQL Version 3 (mit MySQL 8.0-Kompatibilität) starten.

1. 31. Oktober 2024 – Zu diesem Zeitpunkt erreicht Aurora-MySQL-Version 2 das Ende des Standard-Supports und Amazon RDS registriert Ihre Cluster automatisch beim erweiterten Amazon-RDS-Support.

Wir registrieren Sie automatisch beim erweiterten RDS-Support. Weitere Informationen finden Sie unter [Amazon RDS Extended Support mit Amazon Aurora](extended-support.md).

## Suche nach Clustern, die von diesem end-of-life Prozess betroffen sind
<a name="find-cluster"></a>

Gehen Sie wie folgt vor, um Cluster zu finden, die von diesem end-of-life Prozess betroffen sind.

**Wichtig**  
Stellen Sie sicher, dass Sie diese Anweisungen an jedem AWS-Region Ort ausführen AWS-Konto , an dem sich Ihre Ressourcen befinden.

### Konsole
<a name="aurora-find-mysqlv1-cluster.CON"></a>

**So finden Sie einen Aurora-MySQL-Cluster der Version 2**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Datenbanken** aus.

1.  Geben Sie im Feld **Nach Datenbanken filtern** **5.7** ein.

1. Suchen Sie in der Engine-Spalte nach Aurora MySQL.

### AWS CLI
<a name="aurora-find-mysqlv1-cluster.CLI"></a>

Rufen Sie den [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)Befehl auf, um mithilfe von nach Clustern zu suchen AWS CLI, die von diesem end-of-life Prozess betroffen sind. Sie können das folgende Beispielskript verwenden.

**Example**  

```
aws rds describe-db-clusters --include-share --query 'DBClusters[?(Engine==`aurora-mysql` && contains(EngineVersion,`5.7.mysql_aurora`))].{EngineVersion:EngineVersion, DBClusterIdentifier:DBClusterIdentifier, EngineMode:EngineMode}' --output table --region us-east-1     
        
        +---------------------------------------------------------------+
        |                      DescribeDBClusters                       |
        +---------------------+---------------+-------------------------+
        |         DBCI        |      EM       |          EV             |
        +---------------------+---------------+-------------------------+
        |    aurora-mysql2    |  provisioned  | 5.7.mysql_aurora.2.11.3 |
        | aurora-serverlessv1 |   serverless  | 5.7.mysql_aurora.2.11.3 |
        +---------------------+---------------+-------------------------+
```

### RDS-API
<a name="Aurora-find-mysqlv1-cluster.API"></a>

Um Aurora MySQL-DB-Cluster zu finden, auf denen Aurora MySQL Version 2 ausgeführt wird, verwenden Sie den [DBClustersRDS-Describe-API-Vorgang](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) mit den folgenden erforderlichen Parametern: 
+  `DescribeDBClusters`
  + Filters.Filter.N
    + Name
      + engine
    + Values.Value.N
      + ['aurora']

## Amazon RDS Extended Support
<a name="Aurora-RDS-Extended-Support"></a>

Sie können den erweiterten Amazon-RDS-Support bis zum Ende des Supportdatums, dem 31. Oktober 2024, kostenlos über Community-MySQL 5.7 nutzen. Am 31. Oktober 2024 registriert Amazon RDS Ihre Datenbanken automatisch beim erweiterten RDS-Support für Aurora-MySQL-Version 2. Der erweiterte RDS-Support für Aurora ist ein kostenpflichtiger Service, der bis zum Ende des erweiterten RDS-Supports im Februar 2027 bis zu 28 zusätzliche Monate Support für Aurora-MySQL-Version 2 bietet. RDS Extended Support wird nur für die Aurora-MySQL-Nebenversionen 2.11 und 2.12 angeboten. Wenn Sie Amazon-Aurora-MySQL-Version 2 über das Ende des Standardsupports hinaus verwenden möchten, planen Sie, Ihre Datenbanken vor dem 31. Oktober 2024 auf einer dieser Nebenversionen auszuführen.

Weitere Informationen zum erweiterten RDS-Support, z. B. zu Gebühren und anderen Überlegungen, finden Sie unter [Amazon RDS Extended Support mit Amazon Aurora](extended-support.md).

## Durchführen eines Upgrades
<a name="Aurora-Performing-an-Upgrade"></a>

Das Upgrade zwischen Hauptversionen erfordert umfangreichere Planung und Tests als für eine Nebenversion. Der Prozess kann beträchtliche Zeit in Anspruch nehmen. Wir möchten das Upgrade als dreistufigen Prozess mit Aktivitäten vor dem Upgrade, für das Upgrade und nach dem Upgrade betrachten.

**Vor dem Upgrade:**

Wir empfehlen, vor der Aktualisierung die Anwendungskompatibilität, die Leistung, Wartungsverfahren und ähnliche Dinge für den aktualisierten Cluster zu prüfen, um sicherzustellen, dass Ihre Anwendungen nach der Aktualisierung wie erwartet funktionieren werden. Im Folgenden finden Sie fünf Empfehlungen, die Ihnen zu einem besseren Upgrade-Komfort verhelfen sollen.
+ Zunächst ist es wichtig, [Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) zu verstehen.
+ Machen Sie sich als Nächstes mit den Ihnen zur Verfügung stehenden Upgrade-Techniken vertraut, wenn [Upgrade von Aurora-MySQL-Version 2 auf Version 3](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Updates.MajorVersionUpgrade.2to3).
+ Um Ihnen bei der Entscheidung für den richtigen Zeitpunkt und den richtigen Ansatz für das Upgrade zu helfen, können Sie die Unterschiede zwischen Aurora-MySQL-Version 3 und Ihrer aktuellen Umgebung mit [Vergleich von Aurora-MySQL-Version 2 und Aurora-MySQL-Version 3](AuroraMySQL.Compare-v2-v3.md) kennenlernen. 
+ Nachdem Sie sich für die Option entschieden haben, die für Sie praktisch ist und am besten funktioniert, versuchen Sie es mit einem simulierten direkten Upgrade auf einem geklonten Cluster. Verwenden Sie dazu [Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning).
+ Überprüfen Sie das [Vorabprüfungen für Hauptversions-Upgrades von Aurora MySQL](AuroraMySQL.upgrade-prechecks.md). Die Upgrade-Vorabprüfung kann ausgeführt werden und feststellen, ob die Datenbank erfolgreich aktualisiert werden kann und ob es nach dem Upgrade Probleme mit der Anwendungsinkompatibilität gibt, ebenso wie Leistung, Wartungsverfahren und ähnliche Überlegungen.
+ Nicht alle Arten oder Versionen von Aurora MySQL Clustern können den integrierten Upgrade-Mechanismus verwenden. Weitere Informationen finden Sie unter [Aurora MySQL Upgrade-Vorgang für die Hauptversion](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Compatibility).

Wenn Sie Fragen oder Bedenken haben, steht Ihnen das AWS Support-Team in den [Community-Foren](https://repost.aws/) und im [Premium-Support](https://aws.amazon.com/premiumsupport/) zur Verfügung.

**Durchführen der Aktualisierung:**

Verwenden Sie eine der folgenden Upgrade-Techniken. Wie lange Ihr System ausfallen wird, hängt von der gewählten Technik ab.
+ **Blaue/grüne Bereitstellungen** — In Situationen, in denen die Reduzierung von Anwendungsausfällen oberste Priorität hat, können Sie [Amazon RDS Blue/Green Deployments](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/) verwenden, um das Hauptversions-Upgrade in bereitgestellten Amazon Aurora Aurora-DB-Clustern durchzuführen. Eine blue/green Bereitstellung erstellt eine Staging-Umgebung, die die Produktionsumgebung kopiert. Sie können bestimmte Änderungen am Aurora-DB-Cluster in der grünen (Staging-)Umgebung vornehmen, ohne die Produktions-Workloads zu beeinträchtigen. Die Umstellung dauert in der Regel weniger als eine Minute, ohne dass Daten verloren gehen. Weitere Informationen finden Sie unter [Überblick über Aurora Blue/Green Aurora-Bereitstellungen](blue-green-deployments-overview.md). Dadurch werden Ausfallzeiten minimiert. Sie müssen jedoch während der Durchführung des Upgrades zusätzliche Ressourcen einsetzen.
+ **Direkte Upgrades** – Sie können ein [direktes Upgrade](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) durchführen, bei dem Aurora automatisch eine Vorabprüfung für Sie ausführt, den Cluster offline nimmt, Ihren Cluster sichert, das Upgrade durchführt und Ihren Cluster wieder online stellt. Ein direktes Upgrade der Hauptversion kann mit wenigen Klicks durchgeführt werden und erfordert keine weitere Koordination oder Failovers mit anderen Clustern, ist jedoch mit Ausfallzeiten verbunden. Weitere Informationen finden Sie unter [Erläuterung der Durchführung eines direkten Upgrades](AuroraMySQL.Upgrading.Procedure.md).
+ **Snapshot-Wiederherstellung** – Sie können Ihren Cluster von Aurora-MySQL-Version 2 aktualisieren, indem Sie eine Wiederherstellung aus einem Snapshot von Aurora-MySQL-Version 2 zu einem Cluster von Aurora-MySQL-Version 3 durchführen. Um dies zu tun, sollten Sie den Prozess zum Erstellen eines Snapshots und zum [Wiederherstellen](aurora-restore-snapshot.md) von diesem befolgen. Dieser Prozess beinhaltet eine Unterbrechung der Datenbank, weil Sie aus einem Snapshot wiederherstellen.

**Nach dem Upgrade:**

Nach dem Upgrade müssen Sie Ihr System (Anwendung und Datenbank) genau überwachen und gegebenenfalls Feinabstimmungen vornehmen. Wenn Sie die Schritte vor dem Upgrade genau befolgen, werden die erforderlichen Änderungen auf ein Minimum reduziert. Weitere Informationen finden Sie unter [Beheben von Problemen mit der Datenbankleistung von Amazon Aurora MySQL](aurora-mysql-troubleshooting.md).

Wenn Sie mehr über die Methoden, die Planung, das Testen und die Fehlerbehebung von Aurora-MySQL-Hauptversions-Upgrades erfahren möchten, lesen Sie unbedingt [Aktualisieren der Hauptversion eines DB-Clusters von Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md), einschließlich [Problembehandlung für Aurora MySQL direkte Upgrades](AuroraMySQL.Upgrading.Troubleshooting.md). Beachten Sie weiterhin, dass manche Instance-Typen nicht für Aurora-MySQL-Version 3 unterstützt werden. Weitere Informationen finden Sie unter [Amazon Aurora Aurora-DB-Instance-Klassen](Concepts.DBInstanceClass.md).

## Upgrade-Pfad für Aurora Serverless v1-DB-Cluster
<a name="Aurora-Upgrade-Serverlessv1-Clusters"></a>

Das Upgrade zwischen Hauptversionen erfordert umfangreichere Planung und Tests als für eine Nebenversion. Der Prozess kann beträchtliche Zeit in Anspruch nehmen. Wir möchten das Upgrade als dreistufigen Prozess mit Aktivitäten vor dem Upgrade, für das Upgrade und nach dem Upgrade betrachten.

 Aurora-MySQL-Version 2 (mit MySQL-5.7-Kompatibilität) erhält weiterhin den Standard-Support für Aurora Serverless v1-Cluster. 

Wenn Sie ein Upgrade zu Amazon Aurora MySQL 3 (mit MySQL-8.0-Kompatibilität) durchführen und weiterhin Aurora Serverless ausführen möchten, können Sie Amazon Aurora Serverless v2 verwenden. Informationen zu den Unterschieden zwischen Aurora Serverless v1 und Aurora Serverless v2 finden Sie unter [Aurora Serverless v2 und Aurora Serverless v1 im Vergleich](aurora-serverless-v2.upgrade.md#aurora-serverless.comparison).

**Upgrade auf Aurora Serverless v2:** Sie können einen Aurora Serverless v1-Cluster auf Aurora Serverless v2 aktualisieren. Weitere Informationen finden Sie unter [Aktualisieren eines Aurora Serverless v1-Clusters auf Aurora Serverless v2](aurora-serverless-v2.upgrade.md#aurora-serverless-v2.upgrade-from-serverless-v1-procedure).

# Vorbereitung auf das Lebenszyzklusende der Amazon Aurora MySQL-kompatible Edition Version 1
<a name="Aurora.MySQL56.EOL"></a>

Amazon-Aurora-MySQL-kompatible Edition Version 1 (mit MySQL 5.6-Kompatibilität) soll am 28. Februar 2023 das Lebenszyzklusende erreichen. Amazon rät, dass Sie alle (bereitgestellten) Cluster (und Aurora Serverless) mit Aurora MySQL Version 1 auf Aurora MySQL Version 2 (mit MySQL 5.7-Kompatibilität) oder Aurora MySQL Version 3 (mit MySQL 8.0 Kompatibilität) aktualisieren. Tun Sie dies, bevor Aurora-MySQL-Version 1 das Ende ihres Supportzeitraums erreicht.

Für Aurora-bereitgestellte DB-Cluster können Sie Upgrades von Aurora MySQL Version 1 auf Aurora MySQL Version 2 mit verschiedenen Methoden durchführen. Eine Anleitung zum Direkt-Upgrade-Mechanismus finden Sie unter [Erläuterung der Durchführung eines direkten Upgrades](AuroraMySQL.Upgrading.Procedure.md). Eine weitere Möglichkeit, das Upgrade abzuschließen, besteht darin, einen Snapshot eines Aurora-MySQL-Version-1-Clusters zu erstellen und den Snapshot in einem Aurora-MySQL-Version-2-Cluster wiederherzustellen. Oder Sie können einen mehrstufigen Prozess verfolgen, bei dem die alten und neuen Cluster nebeneinander ausgeführt werden. Weitere Einzelheiten zu den einzelnen Methoden finden Sie unter [Aktualisieren der Hauptversion eines DB-Clusters von Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md).

Für DB-Cluster von Aurora Serverless v1 können Sie ein direktes Upgrade von Aurora-MySQL-Version 1 auf Aurora-MySQL-Version 2 durchführen. Weitere Einzelheiten zu dieser Methode finden Sie unter [Ändern eines Aurora Serverless v1-DB-Clusters](aurora-serverless.modifying.md).

Für Aurora-bereitgestellte DB-Cluster können Sie Upgrades von Aurora-MySQL-Version 1 auf Aurora-MySQL-Version 3 mithilfe eines zweistufigen Upgrade-Prozesses durchführen:

1. Führen Sie ein Upgrade von Aurora-MySQL-Version 1 auf Aurora-MySQL-Version 2 unter Verwendung der zuvor beschriebenen Methoden durch.

1. Aktualisieren Sie von Aurora-MySQL-Version 2 auf Aurora-MySQL-Version 3 mit den gleichen Methoden wie von Version 1 auf Version 2. Weitere Details finden Sie unter [Upgrade von Aurora-MySQL-Version 2 auf Version 3](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Updates.MajorVersionUpgrade.2to3). Beachten Sie den [Funktionsunterschiede zwischen Aurora MySQL Version 2 und 3](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.Compare-v2-v3-features).

Die Datumsangaben zum Ende des Lebenszyklus für Aurora-Hauptversionen finden Sie in [Amazon-Aurora-Versionen](Aurora.VersionPolicy.md). Amazon aktualisiert automatisch alle Cluster, die Sie vor dem Ende des Lebenszyklus nicht selbst aktualisieren. Nach dem Ende des Lebenszyklus erfolgen diese automatischen Upgrades auf die nachfolgende Hauptversion während eines geplanten Wartungsfensters für Cluster. 

Im Folgenden finden Sie zusätzliche Meilensteine für das Upgrade von Aurora-MySQL-Cluster der Version 1 (bereitgestellt und Aurora Serverless), die das Ende des Lebenszyklus erreichen. Für alle ist die Startzeit 00:00 Uhr (UTC). 

1. Jetzt bis zum 28. Februar 2023 – Sie können jederzeit Upgrades von Aurora-MySQL-Cluster der Version 1 (mit MySQL 5.6-Kompatibilität) auf Aurora MySQL Version 2 (mit MySQL 5.7-Kompatibilität) starten. Von Aurora-MySQL-Version 2 aus können Sie ein weiteres Upgrade auf Aurora-MySQL-Version 3 (mit MySQL 8.0-Kompatibilität) für von Aurora bereitgestellte DB-Cluster durchführen. 

1. 16. Januar 2023 – Ab diesem Zeitpunkt können Sie keine neuen Cluster oder Instances von Aurora MySQL Version 1 über die AWS-Managementkonsole oder die AWS Command Line Interface (AWS CLI) erstellen. Sie können einer globalen Aurora-Datenbank auch keine neuen sekundären Regionen hinzufügen. Dies kann sich auf Ihre Fähigkeit auswirken, sich nach einem ungeplanten Ausfall wie in [Wiederherstellen einer globalen Amazon Aurora-Datenbank nach einem ungeplanten Ausfall](aurora-global-database-disaster-recovery.md#aurora-global-database-failover) beschrieben zu erholen, da Sie die Schritte 5 und 6 nach dieser Zeit nicht ausführen können. Sie können auch kein neues regionsübergreifendes Lesereplikat erstellen, auf dem Aurora MySQL Version 1 ausgeführt wird. Für bestehende Aurora-MySQL-Cluster der Version 1 können Sie bis zum 28. Februar 2023 immer noch Folgendes tun:
   + Wiederherstellen eines Snapshots eines Clusters von Aurora-MySQL-Version 1 auf die Version des ursprünglichen Snapshot-Clusters.
   + Lesereplikate hinzufügen (gilt nicht für Aurora Serverless-DB-Cluster).
   + Ändern der Instance-Konfiguration.
   + Durchführen einer Point-in-Time-Wiederherstellung.
   + Erstellen von Klonen bestehender Cluster der Version 1.
   + Erstellen eines neuen regionsübergreifendes Lesereplikats, auf dem Aurora-MySQL-Version 2 oder höher ausgeführt wird.

1.  28. Februar 2023 – Nach dieser Zeit planen wir, Aurora-MySQL-Cluster der Version 1 innerhalb eines darauf folgenden geplanten Wartungsfensters automatisch auf die Standardversion von Aurora-MySQL-Version 2 zu aktualisieren. Das Wiederherstellen von Aurora-MySQL-Version-1-DB-Snapshots führt zu einem automatischen Upgrade des wiederhergestellten Clusters auf die Standardversion von Aurora MySQL Version 2 zu diesem Zeitpunkt. 

Das Upgrade zwischen Hauptversionen erfordert umfangreichere Planung und Tests als für eine Nebenversion. Der Prozess kann beträchtliche Zeit in Anspruch nehmen.

In Situationen, in denen die Reduzierung von Ausfallzeiten oberste Priorität hat, können Sie auch [Blau/Grün-Bereitstellungen](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/) verwenden, um das Hauptversions-Upgrade in bereitgestellten DB-Clustern von Amazon Aurora durchzuführen. Mit einer Blau/Grün-Bereitstellung wird eine Staging-Umgebung erstellt, die die Produktionsumgebung kopiert. Sie können Änderungen am Aurora-DB-Cluster in der grünen (Staging-) Umgebung vornehmen, ohne die Produktions-Workloads zu beeinträchtigen. Die Umstellung dauert in der Regel weniger als eine Minute, ohne dass Daten verloren gehen und Anwendungsänderungen erforderlich sind. Weitere Informationen finden Sie unter [Überblick über Aurora Blue/Green Aurora-Bereitstellungen](blue-green-deployments-overview.md).

Nachdem das Upgrade abgeschlossen ist, müssen Sie möglicherweise auch Follow-up-Arbeiten ausführen. Beispielsweise müssen Sie möglicherweise aufgrund von Unterschieden in der SQL-Kompatibilität, der Funktionsweise bestimmter MySQL-bezogener Funktionen oder Parametereinstellungen zwischen der alten und der neuen Version nachverfolgen.

Um mehr über die Methoden, die Planung, das Testen und die Fehlerbehebung von Aurora-MySQL-Hauptversions-Upgrades zu erfahren, lesen Sie unbedingt [Aktualisieren der Hauptversion eines DB-Clusters von Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md) .

## Finden von Clustern, die von diesem Lebenszyklusende-Prozess betroffen sind
<a name="find-cluster"></a>

Gehen Sie wie folgt vor, um Cluster zu finden, die von diesem Lebenszyklusende-Prozess betroffen sind.

**Wichtig**  
Stellen Sie sicher, dass Sie diese Anweisungen in jeder AWS-Region und für jedes AWS-Konto ausführen, in der sich Ihre Ressourcen befinden.

### Konsole
<a name="aurora-find-mysqlv1-cluster.CON"></a>

**Suchen Sie einen Aurora-MySQL-Cluster der Version 1 wie folgt:**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1.  Wählen Sie im Navigationsbereich **Datenbanken** aus.

1.  Geben Sie im Feld **Nach Datenbanken filtern** **5.6** ein.

1. Suchen Sie in der Engine-Spalte nach Aurora MySQL.

### AWS CLI
<a name="aurora-find-mysqlv1-cluster.CLI"></a>

Um unter Verwendung von AWS CLI Cluster zu finden, die von diesem Lebenszyklusende-Prozess betroffen sind, rufen Sie den [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)-Befehl auf. Sie können das folgende Beispielskript verwenden.

**Example**  

```
aws rds describe-db-clusters --include-share --query 'DBClusters[?Engine==`aurora`].{EV:EngineVersion, DBCI:DBClusterIdentifier, EM:EngineMode}' --output table --region us-east-1     
        
        +------------------------------------------+
        |            DescribeDBClusters            |
        +---------------+--------------+-----------+
        |     DBCI      |     EM       |    EV     |
        +---------------+--------------+-----------+
        |  my-database-1|  serverless  |  5.6.10a  |
        +---------------+--------------+-----------+
```

### RDS-API
<a name="Aurora-find-mysqlv1-cluster.API"></a>

Um Aurora-MySQL-DB-Cluster zu finden, auf denen Aurora MySQL Version 1 ausgeführt wird, verwenden Sie den RDS-[DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html)-API-Vorgang mit folgenden erforderlichen Parametern: 
+  `DescribeDBClusters`
  + Filters.Filter.N
    + Name
      + engine
    + Values.Value.N
      + ['aurora']

# Upgrade von Amazon Aurora MySQL-DB-Clustern
<a name="AuroraMySQL.Updates.Upgrading"></a><a name="mysql_upgrade"></a>

 Sie können einen Aurora MySQL-DB-Cluster aktualisieren, um Bugfixes oder neue Aurora MySQL-Funktionen zu erhalten oder zu einer völlig neuen Version der zugrunde liegenden Datenbank-Engine zu wechseln. Die folgenden Abschnitte zeigen wie. 

**Anmerkung**  
 Die Art des Upgrades, das Sie durchführen, hängt davon ab, wie viel Ausfallzeit Sie sich für Ihren Cluster leisten können, wie viele Verifizierungstests Sie durchführen möchten, wie wichtig die spezifischen Bugfixes oder neuen Funktionen für Ihren Anwendungsfall sind und ob Sie vorhaben häufig kleine Upgrades oder gelegentliche Upgrades durchführen, die mehrere Zwischenversionen überspringen. Für jedes Upgrade können Sie die Hauptversion, die Nebenversion und die Patch-Ebene für Ihren Cluster ändern. Wenn Sie mit der Unterscheidung zwischen Aurora MySQL-Hauptversionen, Nebenversionen und Patch-Ebenen nicht vertraut sind, können Sie die Hintergrundinformationen unter lese [Überprüfen von Aurora-MySQL-Versionsnummern](AuroraMySQL.Updates.Versions.md). 

**Tipp**  
Sie können die für ein DB-Cluster-Upgrade erforderlichen Ausfallzeiten minimieren, indem Sie eine Blau/Grün-Bereitstellung verwenden. Weitere Informationen finden Sie unter [Verwenden von Amazon Aurora Blue/Green Deployments für Datenbank-Updates](blue-green-deployments.md).

**Topics**
+ [Upgrade der Nebenversion oder der Patch-Ebene eines Aurora MySQL-DB-Clusters](AuroraMySQL.Updates.Patching.md)
+ [Aktualisieren der Hauptversion eines DB-Clusters von Amazon Aurora MySQL](AuroraMySQL.Updates.MajorVersionUpgrade.md)

# Upgrade der Nebenversion oder der Patch-Ebene eines Aurora MySQL-DB-Clusters
<a name="AuroraMySQL.Updates.Patching"></a>

 Sie können die folgenden Methoden verwenden, um die Nebenversion eines DB-Clusters zu aktualisieren oder einen DB-Cluster zu patchen: 
+ [Upgrade von Aurora MySQL durch Ändern der Engine-Version](AuroraMySQL.Updates.Patching.ModifyEngineVersion.md) (für Aurora-MySQL-Version 2) und 3
+ [Aktivieren von automatischen Upgrades zwischen Aurora MySQL-Nebenversionen](AuroraMySQL.Updates.AMVU.md)

 Informationen dazu, wie Patches ohne Ausfallzeiten Unterbrechungen während des Upgrade-Vorgangs reduzieren können, finden Sie unter [Verwendung von Zero-Downtime-Patching (Patchen ohne Ausfallzeiten)](AuroraMySQL.Updates.ZDP.md). 

Informationen zum Durchführen eines Nebenversions-Upgrades für Ihren DB-Cluster von Aurora MySQL finden Sie in den folgenden Themen. 

**Topics**
+ [Vor dem Durchführen eines Nebenversions-Upgrades](#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
+ [Vorabprüfungen für Nebenversions-Upgrades von Aurora MySQL](#AuroraMySQL.minor-upgrade-prechecks)
+ [Upgrade von Aurora MySQL durch Ändern der Engine-Version](AuroraMySQL.Updates.Patching.ModifyEngineVersion.md)
+ [Aktivieren von automatischen Upgrades zwischen Aurora MySQL-Nebenversionen](AuroraMySQL.Updates.AMVU.md)
+ [Verwendung von Zero-Downtime-Patching (Patchen ohne Ausfallzeiten)](AuroraMySQL.Updates.ZDP.md)
+ [Alternative Upgrade-Technik blue/green](#AuroraMySQL.UpgradingMinor.BlueGreen)

## Vor dem Durchführen eines Nebenversions-Upgrades
<a name="USER_UpgradeDBInstance.PostgreSQL.BeforeMinor"></a>

Wir empfehlen Ihnen, die folgenden Aktionen durchzuführen, um die Ausfallzeit während eines Unterversion-Upgrades zu reduzieren:
+ Die Wartung des Aurora-DB-Clusters sollte in Zeiten mit geringem Datenverkehr durchgeführt werden. Verwenden Sie Performance Insights, um diese Zeiträume zu identifizieren und die Wartungsfenster korrekt zu konfigurieren. Weitere Informationen zu Performance Insights finden Sie unter [Überwachen der DB-Auslastung mit Performance Insights in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html). Weitere Informationen zu DB-Cluster-Wartungsfenstern finden Sie unter [Anpassen des bevorzugten DB-Cluster-Wartungsfensters](USER_UpgradeDBInstance.Maintenance.md#AdjustingTheMaintenanceWindow.Aurora).
+ Verwenden Sie AWS SDKs diese Unterstützung für exponentiellen Backoff und Jitter als bewährte Methode. Weitere Informationen finden Sie unter [Exponentielles Backoff und Jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/).

## Vorabprüfungen für Nebenversions-Upgrades von Aurora MySQL
<a name="AuroraMySQL.minor-upgrade-prechecks"></a>

Wenn Sie ein Nebenversions-Upgrade starten, führt Amazon Aurora automatisch Vorabprüfungen durch.

Diese Vorabprüfungen müssen durchgeführt werden. Sie können nicht ausgelassen werden. Die Vorabprüfungen bieten folgende Vorteile:
+ Sie können ungeplante Ausfallzeiten während des Upgrades vermeiden.
+ Wenn es Inkompatibilitäten gibt, verhindert Amazon Aurora das Upgrade und stellt Ihnen ein Protokoll mit Informationen zu den Inkompatibilitäten bereit. Sie können das Protokoll für die Vorbereitung Ihrer Datenbank auf das Upgrade verwenden, indem Sie die Inkompatibilitäten reduzieren. Detaillierte Informationen zum Entfernen von Inkompatibilitäten finden Sie unter [Vorbereiten Ihrer Installation auf ein Upgrade](https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html) in der MySQL-Dokumentation.

Die Vorabprüfungen werden ausgeführt, bevor die DB-Instance aufgrund des Upgrades angehalten wird. Sie verursachen also keine Ausfallzeiten. Wird während der Vorabprüfungen eine Inkompatibilität entdeckt, bricht Aurora automatisch das Upgrade ab, ehe die DB-Instance angehalten wird. Aurora generiert auch ein Ereignis für die Inkompatibilität. Weitere Informationen über Amazon-Aurora-Ereignisse finden Sie unter [Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen](USER_Events.md).

Aurora zeichnet detaillierte Informationen zu allen Inkompatibilitäten in der Protokolldatei `PrePatchCompatibility.log` auf. In den meisten Fällen enthalten die Protokolleinträge einen Link zur MySQL-Dokumentation mit Informationen zur Lösung des Inkompatibilitätsproblems. Weitere Informationen zum Anzeigen von Protokolldateien finden Sie unter [Anzeigen und Auflisten von Datenbank-Protokolldateien](USER_LogAccess.Procedural.Viewing.md).

Aufgrund der Art der Vorabprüfungen werden die Objekte in Ihrer Datenbank geprüft. Diese Analyse verbraucht Ressourcen und verlängert die Zeit, die für die Durchführung des Upgrades benötigt wird.

# Upgrade von Aurora MySQL durch Ändern der Engine-Version
<a name="AuroraMySQL.Updates.Patching.ModifyEngineVersion"></a>

Beim Upgrade der Nebenversion eines DB-Clusters von Aurora MySQL werden zusätzliche Korrekturen und neue Funktionen auf einen vorhandenen Cluster angewendet.

Diese Art von Upgrade gilt für Aurora-MySQL-Cluster, bei denen die ursprüngliche Version und die aktualisierte Version dieselbe Aurora-MySQL-Hauptversion haben, entweder 2 oder 3. Der Prozess ist schnell und unkompliziert, da er keine Konvertierung für die Aurora-MySQL-Metadaten oder Reorganisation Ihrer Tabellendaten erfordert.

Sie führen diese Art von Upgrade durch, indem Sie die Engine-Version des DB-Clusters mithilfe der AWS-Managementkonsole, AWS CLI oder der RDS-API ändern. Wenn beispielsweise in Ihrem Cluster Aurora MySQL 3.x ausgeführt wird, wählen Sie eine höhere 3.x-Version.

Wenn Sie ein Nebenversions-Upgrade für eine Aurora Global Database durchführen, aktualisieren Sie alle sekundären Cluster, bevor Sie den primären Cluster aktualisieren.

**Anmerkung**  
Gehen Sie wie folgt vor, um ein Unterversion-Upgrade auf Aurora-MySQL-Version 3.04.\$1 oder höher bzw. Version 2.12\$1 durchzuführen:  
Entfernen Sie alle sekundären Regionen aus dem globalen Cluster. Führen Sie die Schritte unter au [Entfernen eines Clusters aus einer Amazon Aurora Global Database](aurora-global-database-detaching.md).
Aktualisieren Sie die Engine-Version der primären Region auf Version 3.04.\$1 oder höher bzw. Version 2.12.\$1, falls zutreffend. Führen Sie die Schritte unter au [To modify the engine version of a DB cluster](#modify-db-cluster-engine-version).
Fügen Sie dem globalen Cluster sekundäre Regionen hinzu. Führen Sie die Schritte unter au [Hinzufügen einer AWS-Region zu einer globalen Amazon-Aurora-Datenbank](aurora-global-database-attaching.md).

 **So ändern Sie die Engine-Version eines DB-Clusters**: 
+ **Über die Konsole** – Ändern Sie die Eigenschaften Ihres Clusters. Ändern Sie im Fenster **DB-Cluster ändern** die Aurora-MySQL-Engine-Version im Feld **DB-Engine-Version**. Wenn Sie mit dem allgemeinen Verfahren zum Ändern eines Clusters nicht vertraut sind, folgen Sie den Anweisungen unter [Ändern des DB-Clusters über die Konsole, die CLI und die API](Aurora.Modifying.md#Aurora.Modifying.Cluster).
+ **Über die AWS CLI** Rufen Sie den AWS CLI-Befehl [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) auf und geben Sie den Namen Ihres DB-Clusters für die Option `--db-cluster-identifier` sowie die Engine-Version für die Option `--engine-version` an.

  Um beispielsweise auf Aurora-MySQL-Version  3.04.1 zu aktualisieren, legen Sie die Option `--engine-version` auf `8.0.mysql_aurora.3.04.1` fest. Geben Sie die Option `--apply-immediately` an, um die Engine-Version für Ihren DB-Cluster sofort zu aktualisieren.
+ **Über die RDS-API** Rufen Sie die API-Operation [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) auf und geben Sie den Namen Ihres DB-Clusters für den Parameter `DBClusterIdentifier` sowie die Engine-Version für den Parameter `EngineVersion` an. Legen Sie den Parameter `ApplyImmediately` auf `true` fest, um die Engine-Version für Ihren DB-Cluster sofort zu aktualisieren.

# Aktivieren von automatischen Upgrades zwischen Aurora MySQL-Nebenversionen
<a name="AuroraMySQL.Updates.AMVU"></a><a name="amvu"></a>

Für einen DB-Cluster von Amazon Aurora MySQL können Sie angeben, dass Aurora den DB-Cluster automatisch auf neue Nebenversionen aktualisiert. Sie tun dies, indem Sie die `AutoMinorVersionUpgrade`-Eigenschaft (**Automatisches Unterversion-Upgrade** in der AWS-Managementkonsole) des DB-Clusters festlegen.

Automatische Aktualisierungen erfolgen während des Wartungsfensters. Wenn die einzelnen DB-Instances im DB-Cluster andere Wartungsfenster haben als das Cluster-Wartungsfenster, hat das Cluster-Wartungsfenster Vorrang.

Das automatische Nebenversions-Upgrade gilt nicht für die folgenden Aurora MySQL-Clustertypen:
+ Cluster, die Teil einer globalen Aurora-Datenbank sind
+ Cluster, die über regionsübergreifende Replikate verfügen

Die Ausfalldauer hängt vom Workload, der Cluster-Größe, der Menge der binären Protokolldaten und davon ab, ob Aurora die Funktion „Patching ohne Ausfallzeiten“ (Zero Downtime Patching, ZDP) verwenden kann. Aurora startet den Datenbankcluster neu, sodass Sie möglicherweise eine kurze Zeit nicht verfügbar sind, bevor Sie Ihren Cluster wieder verwenden. Insbesondere wirkt sich die Menge der Binärprotokolldaten auf die Wiederherstellungszeit aus. Die DB-Instance verarbeitet die binären Protokolldaten während der Wiederherstellung. Somit erhöht eine hohe Menge an binären Protokolldaten die Wiederherstellungszeit.

**Anmerkung**  
Aurora führt automatische Upgrades nur durch, wenn alle DB-Instances in Ihrem DB-Cluster die `AutoMinorVersionUpgrade`-Einstellung aktiviert haben. Informationen zum Festlegen der Einstellung und zu deren Funktionsweise, wenn sie auf Cluster- und Instance-Ebene angewendet wird, finden Sie unter [Automatische Nebenversions-Upgrades für Aurora-DB-Cluster](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU).  
Wenn dann ein Upgrade-Pfad für die Instances des DB-Clusters auf eine DB-Engine-Nebenversion existiert, bei der `AutoUpgrade` auf „true“ gesetzt ist, wird das Upgrade durchgeführt. Die `AutoUpgrade`-Einstellung ist dynamisch und wird von RDS festgelegt.  
Automatische Nebenversions-Upgrades werden auf die standardmäßige Nebenversion durchgeführt.

Sie können einen CLI-Befehl wie den folgenden verwenden, um den Status der Einstellung `AutoMinorVersionUpgrade` für alle DB-Instances in Ihren Aurora-MySQL-Clustern zu überprüfen.

```
aws rds describe-db-instances \
  --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'
```

Die Ausgabe dieses Befehls sieht etwa so aus:

```
[
  {
      "DBInstanceIdentifier": "db-t2-medium-instance",
      "DBClusterIdentifier": "cluster-57-2020-06-03-6411",
      "AutoMinorVersionUpgrade": true
  },
  {
      "DBInstanceIdentifier": "db-t2-small-original-size",
      "DBClusterIdentifier": "cluster-57-2020-06-03-6411",
      "AutoMinorVersionUpgrade": false
  },
  {
      "DBInstanceIdentifier": "instance-2020-05-01-2332",
      "DBClusterIdentifier": "cluster-57-2020-05-01-4615",
      "AutoMinorVersionUpgrade": true
  },
... output omitted ...
```

In diesem Beispiel ist die Einstellung **Automatisches Nebenversions-Upgrade aktivieren** für den DB-Cluster `cluster-57-2020-06-03-6411` deaktiviert, da sie für eine der DB-Instances im Cluster deaktiviert ist.

# Verwendung von Zero-Downtime-Patching (Patchen ohne Ausfallzeiten)
<a name="AuroraMySQL.Updates.ZDP"></a><a name="zdp"></a>

Das Durchführen von Upgrades für Aurora MySQL DB-Cluster beinhaltet die Möglichkeit eines Ausfalls, wenn die Datenbank heruntergefahren wird und während sie aktualisiert wird. Wenn Sie das Upgrade starten, während die Datenbank ausgelastet ist, verlieren Sie standardmäßig alle Verbindungen und Transaktionen, die der DB-Cluster verarbeitet. Wenn Sie warten, bis die Datenbank im Leerlauf ist, um das Upgrade durchzuführen, müssen Sie möglicherweise lange warten.

Beim Feature des Patchens ohne Ausfallzeiten (ZDP – Zero-Downtime Patching) wird versucht, Client-Verbindungen auf Best-Effort-Basis vor der Aurora MySQL-Aktualisierung zu bewahren. Wenn das ZDP erfolgreich abgeschlossen wird, werden Anwendungssitzungen bewahrt und die Datenbank-Engine wird während der laufenden Aktualisierung neu gestartet. Der Neustart der Datenbank-Engine kann zu einem Abfall des Durchsatzes von eingen Sekunden bis 1 Minute führen.

ZDP gilt nicht für Folgendes:
+ Patches und Upgrades für das Betriebssystem
+ Hauptversions-Upgrades

ZDP ist für alle unterstützten Aurora-MySQL-Versionen und DB-Instance-Klassen verfügbar.

ZDP wird für Aurora Serverless v1- oder globale Aurora-Datenbanken nicht unterstützt.

**Anmerkung**  
Wir empfehlen, die T-DB-Instance-Klassen nur für Entwicklungs- und Testserver oder andere Nicht-Produktionsserver zu verwenden. Weitere Einzelheiten zu den T-Instance-Klassen finden Sie unter [Verwendung von T-Instance-Klassen für Entwicklung und Tests](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.T2Medium).

Sie können Metriken wichtiger Attribute während des ZDP im MySQL-Fehlerprotokoll sehen. Sie können auch Informationen darüber sehen, wann Aurora MySQL ZDP verwendet oder nicht verwendet und zwar auf der Seite **Ereignisse** der AWS-Managementkonsole.

In Aurora MySQL kann Aurora einen Patch ohne Ausfallzeit ausführen, unabhängig davon, ob die binäre Protokollreplikation aktiviert ist. Wenn die binäre Protokollreplikation aktiviert ist, löscht Aurora MySQL während eines ZDP-Vorgangs automatisch die Verbindung zum Binärprotokollziel. Aurora MySQL stellt automatisch eine Verbindung zum binlog-Ziel her und setzt die Replikation fort, nachdem der Neustart abgeschlossen ist.

Das ZDP arbeitet auch in Kombination mit den Neustartverbesserungen in Aurora MySQL. Durch das Patchen der Writer-DB-Instance werden die Leser automatisch gleichzeitig gepatcht. Aurora stellt nach dem Ausführen des Patches die Verbindungen sowohl auf den Writer- als auch der Reader-DB-Instances wieder

ZDP kann unter den folgenden Bedingungen möglicherweise nicht erfolgreich abgeschlossen werden:
+ Wenn langandauernde Abfragen oder Transaktionen ausgeführt werden. Wenn Aurora in diesem Fall ZDP durchführen kann, werden alle offenen Transaktionen abgebrochen, aber ihre Verbindungen beibehalten.
+ Es werden temporäre Tabellen, Benutzer- oder Tabellensperren verwendet, beispielsweise während Anweisungen für die Datendefinitionssprache (DDL) ausgeführt werden. Aurora trennt diese Verbindungen.
+ Wenn ausstehende Parameteränderungen vorhanden sind.

Wenn sich kein passendes Zeitfenster für die Durchführung von ZDP finden lässt, weil eine dieser Bedingungen vorliegt, wird das Patchen im normalen Modus ausgeführt.

Obwohl Verbindungen nach einem erfolgreichen ZDP-Vorgang intakt bleiben, werden einige Variablen und Funktionen neu initialisiert. Die folgenden Arten von Informationen werden durch einen Neustart, der durch Patchen ohne Ausfallzeiten verursacht wird, nicht beibehalten:
+ Globale Variablen Aurora stellt Sitzungsvariablen wieder her, stellt jedoch nach dem Neustart keine globalen Variablen wieder her.
+ Statusvariablen. Insbesondere wird der vom Engine-Status gemeldete Betriebszeit-Wert nach einem Neustart zurückgesetzt, der die ZDR- oder ZDP-Mechanismen verwendet.
+ `LAST_INSERT_ID`.
+ In-Memory-`auto_increment`-Status für Tabellen. Der Status des automatischen In-Memory-Inkrements wird neu initialisiert. Weitere Informationen zu automatischen Inkrementwerten finden Sie im[ MySQL-Referenzhandbuch](https://dev.mysql.com/doc/refman/5.7/en/innodb-auto-increment-handling.html#innodb-auto-increment-initialization).
+ Diagnoseinformationen aus `INFORMATION_SCHEMA`- und `PERFORMANCE_SCHEMA`-Tabellen. Diese Diagnoseinformationen erscheinen auch in der Ausgabe von Befehlen wie `SHOW PROFILE` und `SHOW PROFILES`. 

Die folgenden Aktivitäten im Zusammenhang mit einem Neustart ohne Ausfallzeiten werden auf der Seite ** Ereignisse** gemeldet:
+ Es wird versucht, die Datenbank ohne Ausfallzeiten zu aktualisieren.
+ Der Versuch, die Datenbank ohne Ausfallzeiten zu aktualisieren, ist beendet. Die Veranstaltung berichtet, wie lange der Prozess gedauert hat. Das Ereignis meldet auch, wie viele Verbindungen während des Neustarts beibehalten wurden und wie viele Verbindungen gelöscht wurden. Sie können das Datenbankfehlerprotokoll einsehen, um weitere Details darüber zu erfahren, was während des Neustarts passiert ist.

## Alternative Upgrade-Technik blue/green
<a name="AuroraMySQL.UpgradingMinor.BlueGreen"></a>

In einigen Situationen ist es Ihre oberste Priorität, eine sofortige Umstellung vom alten auf einen aktualisierten Cluster durchzuführen. In solchen Situationen können Sie einen mehrstufigen Prozess verwenden, bei dem der alte und der neue Cluster side-by-side ausgeführt werden. Hier replizieren Sie Daten vom alten auf den neuen Cluster, bis der neuen Cluster zur Übernahme bereit ist. Details hierzu finden Sie unter [Verwenden von Amazon Aurora Blue/Green Deployments für Datenbank-Updates](blue-green-deployments.md).

# Aktualisieren der Hauptversion eines DB-Clusters von Amazon Aurora MySQL
<a name="AuroraMySQL.Updates.MajorVersionUpgrade"></a><a name="mvu"></a>

In einer Aurora-MySQL-Versionsnummer wie 3.04.1 steht die 3 für die Hauptversion. Aurora-MySQL-Version 2 ist mit MySQL 5.7 kompatibel. Aurora-MySQL-Version 3 ist mit MySQL 8.0 kompatibel.

Das Upgrade zwischen Hauptversionen erfordert umfangreichere Planung und Tests als für eine Nebenversion. Der Prozess kann beträchtliche Zeit in Anspruch nehmen. Nachdem das Upgrade abgeschlossen ist, müssen Sie möglicherweise auch Follow-up-Arbeiten ausführen. Dies kann beispielsweise aufgrund von Unterschieden in der SQL-Kompatibilität oder der Funktionsweise bestimmter Funktionen im Zusammenhang mit MySQL nötig sein. Oder es kann aufgrund unterschiedlicher Parametereinstellungen zwischen der alten und der neuen Version erforderlich sein.

**Contents**
+ [Upgrade von Aurora-MySQL-Version 2 auf Version 3](#AuroraMySQL.Updates.MajorVersionUpgrade.2to3)
+ [Aurora MySQL Upgrade-Vorgang für die Hauptversion](#AuroraMySQL.Upgrading.Compatibility)
+ [Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion](#AuroraMySQL.Upgrading.Sequence)
+ [Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster](#AuroraMySQL.Upgrading.Planning)
  + [Simulieren des Upgrades durch Klonen Ihres DB-Clusters](#AuroraMySQL.Upgrading.Planning.clone)
  + [Blau/Grün-Bereitstellungen](#AuroraMySQL.UpgradingMajor.BlueGreen)
+ [Vorabprüfungen für Hauptversions-Upgrades von Aurora MySQL](AuroraMySQL.upgrade-prechecks.md)
  + [Vorabprüfungsprozess für Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.process)
  + [Vorabprüfungs-Protokollformat für Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.log-format)
  + [Beispiele für Protokollausgaben der Vorabprüfung bei Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.log-examples)
  + [Leistung der Vorabprüfung bei Aurora MySQL](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.performance)
  + [Zusammenfassung der Vorabprüfungen für Community-MySQL-Upgrades](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.community)
  + [Zusammenfassung der Vorabprüfungen für Aurora-MySQL-Upgrades](AuroraMySQL.upgrade-prechecks.md#AuroraMySQL.upgrade-prechecks.ams)
  + [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md)
    + [Fehler](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors)
      + [MySQL-Vorabprüfungen, die Fehler melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.mysql)
      + [Aurora-MySQL-Vorabprüfungen, die Fehler melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.aurora)
    + [Warnungen](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings)
      + [MySQL-Vorabprüfungen, die Warnungen melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.mysql)
      + [Aurora-MySQL-Vorabprüfungen, die Warnungen melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.aurora)
    + [Hinweise](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-notices)
    + [Fehler, Warnungen oder Hinweise](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-all)
+ [Erläuterung der Durchführung eines direkten Upgrades](AuroraMySQL.Upgrading.Procedure.md)
  + [Wie sich direkte Upgrades auf die Parametergruppen für einen Cluster auswirken](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.ParamGroups)
  + [Änderungen an Cluster-Eigenschaften zwischen Aurora-MySQL-Versionen](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.Attrs)
  + [In-Situ-Hauptversions-Upgrades für globale Datenbanken](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.GlobalDB)
  + [Direkte Upgrades für DB-Cluster mit regionsübergreifenden Lesereplikaten](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.XRRR)
+ [Aurora MySQL direktes Upgrade](AuroraMySQL.Upgrading.Tutorial.md)
+ [Finden der Gründe für Fehler bei Hauptversion-Upgrades von Aurora MySQL](AuroraMySQL.Upgrading.failure-events.md)
+ [Problembehandlung für Aurora MySQL direkte Upgrades](AuroraMySQL.Upgrading.Troubleshooting.md)
+ [Bereinigung nach dem Upgrade für Aurora MySQL Version 3](AuroraMySQL.mysql80-post-upgrade.md)
  + [SPATIAL-Index](AuroraMySQL.mysql80-post-upgrade.md#AuroraMySQL.mysql80-spatial)

## Upgrade von Aurora-MySQL-Version 2 auf Version 3
<a name="AuroraMySQL.Updates.MajorVersionUpgrade.2to3"></a>

Wenn Sie einen mit MySQL 5.7 kompatiblen Cluster auf einen mit MySQL 8.0 kompatiblen Cluster aktualisieren möchten, führen Sie einen Upgrade-Prozess auf dem Cluster selbst aus. Diese Art von Upgrade ist ein *direktes Upgrade* im Gegensatz zu Upgrades, die Sie durch die Erstellung eines neuen Clusters durchführen. Diese Technik behält den gleichen Endpunkt und andere Eigenschaften des Clusters bei. Das Upgrade ist relativ schnell, da nicht alle Ihre Daten auf ein neues Cluster-Volume kopiert werden müssen. Diese Stabilität hilft, Konfigurationsänderungen in Ihren Anwendungen zu minimieren. Sie trägt auch dazu bei, die Anzahl der Tests für den aktualisierten Cluster zu reduzieren. Das liegt daran, dass die Anzahl der DB-Instances und ihrer Instance-Klassen gleich bleibt.

Der direkte Upgrade-Mechanismus umfasst das Herunterfahren Ihres DB-Clusters, während der Vorgang ausgeführt wird. Aurora führt ein sauberes Herunterfahren durch und schließt ausstehende Vorgänge wie Transaktions-Rollback und Rückgängig-Bereinigung ab. Weitere Informationen finden Sie unter [Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion](#AuroraMySQL.Upgrading.Sequence).

Die direkte Upgrade-Methode ist praktisch, da sie einfach durchzuführen ist und Konfigurationsänderungen an zugehörigen Anwendungen minimiert. Beispielsweise behält ein direktes Upgrade die Endpunkte und die Gruppe von DB-Instances für Ihren Cluster bei. Die für ein direktes Upgrade benötigte Zeit kann jedoch je nach den Eigenschaften Ihres Schemas und der Auslastung des Clusters variieren. Abhängig von den Anforderungen Ihres Clusters können Sie daher zwischen den Upgrade-Methoden wählen:
+ [Direkt-Upgrade](AuroraMySQL.Upgrading.Procedure.md)
+ [Blau/Grün-Bereitstellung](#AuroraMySQL.UpgradingMajor.BlueGreen)
+ [Snapshot-Wiederherstellung](aurora-restore-snapshot.md)
**Anmerkung**  
Wenn Sie die AWS CLI oder RDS-API für die Snapshot-Restore-Upgrade-Methode verwenden, müssen Sie einen nachfolgenden Vorgang ausführen, um eine Writer-DB-Instance im wiederhergestellten DB-Cluster zu erstellen.

Allgemeine Informationen zu Aurora-MySQL-Version 3 und den neuen Funktionen finden Sie unter [Aurora mit MySQL Version 3 ist kompatibel mit MySQL 8.0](AuroraMySQL.MySQL80.md).

Einzelheiten zur Planung eines Upgrades finden Sie unter [Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster](#AuroraMySQL.Upgrading.Planning) und [Erläuterung der Durchführung eines direkten Upgrades](AuroraMySQL.Upgrading.Procedure.md).

## Aurora MySQL Upgrade-Vorgang für die Hauptversion
<a name="AuroraMySQL.Upgrading.Compatibility"></a>

Nicht alle Arten oder Versionen von Aurora MySQL Clustern können den integrierten Upgrade-Mechanismus verwenden. Sie können den geeigneten Upgrade-Pfad für jeden Aurora MySQL-Cluster finden, indem Sie die folgende Tabelle konsultieren.


|  Typ des Aurora MySQL-DB-Clusters  | Kann ein direktes Upgrade verwendet werden?  |  Action  | 
| --- | --- | --- | 
|   Von Aurora MySQL bereitgestellter Cluster, Version 2  |  Ja  |  Das direkte Upgrade wird für MySQL-5.7-kompatible Aurora-MySQL-Cluster unterstützt. Informationen zum Upgrade auf Aurora-MySQL-Version 3 finden Sie unter [Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster](#AuroraMySQL.Upgrading.Planning) und [Erläuterung der Durchführung eines direkten Upgrades](AuroraMySQL.Upgrading.Procedure.md).  | 
|   Von Aurora MySQL bereitgestellter Cluster, Version 3  |  Nicht zutreffend  |  Verwenden Sie ein Upgrade-Verfahren für Nebenversionen, um ein Upgrade zwischen Versionen von Aurora-MySQL-Version 3 durchzuführen.  | 
|  Aurora Serverless v1-Cluster  |  Nicht zutreffend  |  Aurora Serverless v1 wird für Aurora MySQL nur auf Version 2 unterstützt.  | 
|  Aurora Serverless v2-Cluster  |  Nicht zutreffend  | Aurora Serverless v2 wird für Aurora MySQL nur auf Version 3 unterstützt. | 
|  Cluster in einer Aurora globalen Datenbank  |  Ja  |  Wenn Sie Aurora-MySQL-Version 2 zu Version 3 aktualisieren möchten, folgen Sie den [Anweisungen für ein direktes Upgrade](AuroraMySQL.Upgrading.Procedure.md) für Cluster in einer globalen Aurora-Datenbank. Führen Sie das Upgrade auf dem globalen Cluster durch. Aurora aktualisiert den primären Cluster und alle sekundären Cluster in der globalen Datenbank gleichzeitig. Wenn Sie die AWS CLI oder RDS-API verwenden, rufen Sie den `modify-global-cluster` Befehl oder die `ModifyGlobalCluster` Operation anstelle von `modify-db-cluster` oder auf`ModifyDBCluster`. Sie können ein direktes Upgrade von Aurora-MySQL-Version 2 auf Version 3 nur durchführen, wenn der `lower_case_table_names`-Parameter auf den Standardwert gesetzt ist und Sie Ihre globale Datenbank neu starten. Weitere Informationen finden Sie unter [Hauptversions-Upgrades](aurora-global-database-upgrade.md#aurora-global-database-upgrade.major).  | 
|  Paralleler Abfrage-Cluster  |  Ja  |  Sie können ein direktes Upgrade durchführen.  | 
|  Cluster, der das Ziel der binären Protokollreplikation ist  |  Vielleicht  |  Wenn die binäre Protokollreplikation von einem Aurora-MySQL-Cluster stammt, können Sie ein direktes Upgrade durchführen. Sie können das Upgrade nicht durchführen, wenn die binäre Protokollreplikation von einer RDS-for-MySQL- oder einer On-Premises MySQL-DB-Instance stammt. In diesem Fall können Sie ein Upgrade mit dem Snapshot-Wiederherstellungsmechanismus durchführen.  | 
|  Cluster mit Null DB-Instances  |  Nein  |  Mit der AWS CLI oder der RDS-API können Sie einen Aurora MySQL-Cluster ohne angehängte DB-Instances erstellen. Auf die gleiche Weise können Sie auch alle DB-Instances aus einem Aurora MySQL-Cluster entfernen, während die Daten im Cluster-Volume intakt bleiben. Während ein Cluster keine DB-Instances hat, können Sie kein direktes Upgrade durchführen. Der Upgrade-Mechanismus erfordert eine Writer-Instance im Cluster, um Conversions für die Systemtabellen, Datendateien usw. durchzuführen. Verwenden Sie in diesem Fall die AWS CLI oder die RDS-API, um eine Writer-Instance für den Cluster zu erstellen. Dann können Sie ein direktes Upgrade durchführen.  | 
|  Cluster mit aktivierter Rückverfolgung  |  Ja  |  Sie können ein direktes Upgrade für einen Aurora-MySQL-Cluster durchführen, der die Rückverfolgungsfunktion verwendet. Nach dem Upgrade können Sie den Cluster jedoch nicht auf einen Zeitpunkt vor dem Upgrade zurückverfolgen.  | 

## Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion
<a name="AuroraMySQL.Upgrading.Sequence"></a>

 Aurora MySQL führt das Upgrade einer Hauptversion als mehrstufigen Prozess durch. Sie können den aktuellen Status eines Upgrades überprüfen. Einige der Upgrade-Schritte enthalten auch Fortschrittsinformationen. Beim Start jeder Phase, zeichnet Aurora MySQL ein Ereignis auf. Sie können Ereignisse so untersuchen, wenn sie auf der Seite **Ereignisse** in der RDS-Konsole auftreten. Weitere Informationen zur Arbeit mit -Ereignissen finden Sie unter [Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen](USER_Events.md). 

**Wichtig**  
 Sobald der Prozess beginnt, wird er ausgeführt, bis das Upgrade erfolgreich ist oder fehlschlägt. Sie können das Upgrade nicht abbrechen, während es läuft. Wenn das Upgrade fehlschlägt, setzt Aurora alle Änderungen zurück und Ihr Cluster hat die gleiche Engine-Version, Metadaten usw. wie zuvor. 

 Der Upgrade-Prozess besteht aus drei Schritten: 

1.  Aurora führt vor Beginn des Upgrade-Prozesses eine Reihe von [Vorabprüfungen](AuroraMySQL.upgrade-prechecks.md) durch. Ihr Cluster läuft weiter, während Aurora diese Prüfungen durchführt. Zum Beispiel kann der Cluster keine XA-Transaktionen im vorbereiteten Zustand haben oder irgendwelche DDL-Anweisungen (Data Definition Language) verarbeiten. Beispielsweise müssen Sie möglicherweise Anwendungen herunterfahren, die bestimmte Arten von SQL-Anweisungen einreichen. Oder Sie könnten einfach warten, bis bestimmte lang andauernde Anweisungen beendet sind. Versuchen Sie dann erneut das Upgrade durchzuführen. Einige Prüfungen testen auf Bedingungen, die das Upgrade nicht verhindern, aber dazu führen können, dass das Upgrade möglicherweise länger dauert. 

    Wenn Aurora feststellt, dass die erforderlichen Bedingungen nicht erfüllt sind, ändern Sie die in den Ereignisdetails angegebenen Bedingungen. Befolgen Sie die Anweisungen unter [Problembehandlung für Aurora MySQL direkte Upgrades](AuroraMySQL.Upgrading.Troubleshooting.md). Wenn Aurora Bedingungen erkennt, die ein langsames Upgrade verursachen könnten, planen Sie ein, das Upgrade über einen längeren Zeitraum zu überwachen. 

1.  Aurora nimmt Ihren Cluster offline. Aurora führt dann ähnliche Tests wie in der vorherigen Phase durch, um zu bestätigen, dass während des Shutdown-Vorgangs keine neuen Probleme aufgetreten sind. Wenn Aurora zu diesem Zeitpunkt Bedingungen erkennt, die das Upgrade verhindern würden, bricht Aurora das Upgrade ab und bringt den Cluster wieder online. Bestätigen Sie in diesem Fall, wenn die Bedingungen nicht mehr gelten, und starten Sie das Upgrade erneut. 

1.  Aurora erstellt einen Snapshot Ihres Cluster-Volumes. Stellen Sie sich vor, Sie stellen nach Abschluss des Upgrades Kompatibilitäts- oder andere Probleme fest. Oder angenommen, Sie möchten Tests sowohl mit den ursprünglichen als auch mit den aktualisierten Clustern durchführen. In solchen Fällen können Sie aus diesem Snapshot den Cluster wiederherstellen, um einen neuen Cluster mit der ursprünglichen Engine-Version und den ursprünglichen Daten zu erstellen. 
**Tipp**  
Dieser Snapshot ist ein manueller Snapshot. Aurora kann den Snapshot jedoch erstellen und den Upgrade-Prozess fortsetzen, auch wenn Sie Ihr Limit für manuelle Snapshots erreicht haben. Dieser Snapshot verbleibt dauerhaft (falls erforderlich), bis Sie ihn löschen. Nachdem Sie alle Tests nach dem Upgrade abgeschlossen haben, können Sie diesen Snapshot löschen, um die Speicherkosten zu minimieren.

1.  Aurora klont Ihr Cluster-Volume. Das Klonen ist ein schneller Vorgang, bei dem die tatsächlichen Tabellendaten nicht kopiert werden müssen. Wenn Aurora während des Upgrades ein Problem feststellt, werden die Originaldaten des geklonten Cluster-Volumes zurückgesetzt und der Cluster wieder online gebracht. Das temporär geklonte Volume während des Upgrades unterliegt nicht dem üblichen Limit für die Anzahl der Klone für ein einzelnes Cluster-Volume. 

1.  Aurora führt ein sauberes Herunterfahren für die Writer-DB-Instance durch. Während des sauberen Herunterfahrens werden Fortschrittsereignisse alle 15 Minuten für die folgenden Vorgänge aufgezeichnet. Sie können Ereignisse so untersuchen, wenn sie auf der Seite **Ereignisse** in der RDS-Konsole auftreten. 
   +  Aurora bereinigt die Undo-Datensätze für alte Versionen von Zeilen. 
   +  Aurora setzt alle nicht festgeschriebenen Transaktionen zurück. 

1.  Aurora aktualisiert die Engine-Version auf der Writer-DB-Instance: 
   +  Aurora installiert die Binärdatei für die neue Engine-Version auf der Writer-DB-Instance. 
   +  Aurora verwendet die Writer-DB-Instance, um Ihre Daten auf das mit MySQL 5.7-kompatible Format zu aktualisieren. In dieser Phase ändert Aurora die Systemtabellen und führt andere Konvertierungen durch, die sich auf die Daten in Ihrem Cluster-Volume auswirken. Insbesondere Aurora aktualisiert die Partitions-Metadaten in den Systemtabellen, um mit dem Partitionsformat MySQL 5.7 kompatibel zu sein. Diese Phase kann lange dauern, wenn die Tabellen in Ihrem Cluster eine große Anzahl von Partitionen haben. 

      Wenn während dieser Phase Fehler auftreten, finden Sie die Details in den MySQL-Fehlerprotokollen. Wenn diese Phase nach dem Start der Upgradevorgang aus irgendeinem Grund fehlschlägt, stellt Aurora die Originaldaten aus dem geklonten Cluster-Volume wieder her. 

1.  Aurora aktualisiert die Engine-Version auf den Reader-DB-Instances. 

1.  Der Upgrade-Vorgang ist abgeschlossen. Aurora zeichnet ein letztes Ereignis auf, um anzuzeigen, dass der Upgrade-Prozess erfolgreich abgeschlossen wurde. Jetzt läuft Ihr DB-Cluster mit der neuen Hauptversion. 

## Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster
<a name="AuroraMySQL.Upgrading.Planning"></a>

Um Ihnen bei der Entscheidung für den richtigen Zeitpunkt und den richtigen Ansatz für das Upgrade zu helfen, können Sie die Unterschiede zwischen Aurora-MySQL-Version 3 und Ihrer aktuellen Umgebung kennenlernen:
+ Wenn Sie von RDS für MySQL 8.0 oder MySQL 8.0 Community Edition konvertieren, lesen Sie bitte [Vergleich von Aurora-MySQL-Version 3 und MySQL 8.0 Community Edition](AuroraMySQL.Compare-80-v3.md).
+ Wenn Sie ein Upgrade von Aurora-MySQL-Version 2, RDS für MySQL 5.7 oder Community-MySQL 5.7 durchführen, vgl. [Vergleich von Aurora-MySQL-Version 2 und Aurora-MySQL-Version 3](AuroraMySQL.Compare-v2-v3.md). 
+ Erstellen Sie neue MySQL 8.0-kompatible Versionen beliebiger benutzerdefinierter Parametergruppen. Wenden Sie alle erforderlichen benutzerdefinierten Parameterwerte auf die neuen Parametergruppen an. Konsultieren Sie [Parameteränderungen für Aurora MySQL Version 3](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.mysql80-parameter-changes), um mehr über Parameteränderungen zu erfahren.
+ Überprüfen Sie das Datenbankschema und die Objektdefinitionen für Aurora-MySQL-Version 2 auf die Verwendung neuer reservierter Schlüsselwörter, die in der MySQL 8.0 Community Edition eingeführt wurden. Führen Sie diesen Schritt vor dem Upgrade aus. Weitere Informationen finden Sie unter [MySQL 8.0 Neue Schlüsselwörter und reservierte Wörter](https://dev.mysql.com/doc/mysqld-version-reference/en/keywords-8-0.html#keywords-new-in-8-0) in der MySQL-Dokumentation.

Weitere MySQL-Spezifische Upgrades und Tipps finden Sie auch unter[Änderungen in MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html)im*MySQL-Referenzhandbuch*aus. Sie können beispielsweise den Befehl `mysqlcheck --check-upgrade` verwenden, um Ihre bestehenden Aurora-MySQL-Datenbanken zu analysieren und potenzielle Upgrade-Probleme zu identifizieren.

**Anmerkung**  
Wir empfehlen die Verwendung größerer DB-Instance-Klassen beim Upgrade auf Aurora-MySQL-Version 3 mit dem direkten Upgrade oder der Snapshot-Wiederherstellungsmethode. Beispiele sind db.r5.24xlarge und db.r6g.16xlarge. Dadurch kann der Upgrade-Prozess schneller abgeschlossen werden, da der Großteil der verfügbaren CPU-Kapazität auf der DB-Instance genutzt wird. Sie können zu der gewünschten DB-Instance-Klasse wechseln, nachdem das Upgrade der Hauptversion abgeschlossen ist.

Nachdem Sie das Upgrade selbst abgeschlossen haben, können Sie die Verfahren nach dem Upgrade unter [Bereinigung nach dem Upgrade für Aurora MySQL Version 3](AuroraMySQL.mysql80-post-upgrade.md) befolgen. Testen Sie abschließend die Funktionalität und Leistung Ihrer Anwendung. 

Wenn Sie von RDS aus MySQL oder Community-MySQL konvertieren, befolgen Sie das unter [Migrieren von Daten zu einem Amazon Aurora MySQL-DB-Cluster](AuroraMySQL.Migrating.md) beschriebene Verfahren. In einigen Fällen können Sie die Binärprotokollreplikation verwenden, um Ihre Daten im Rahmen der Migration mit einem Aurora MySQL-Cluster der Version 3 zu synchronisieren. In diesem Fall muss das Quellsystem eine Version ausführen, die mit Ihrem Ziel-DB-Cluster kompatibel ist.

Damit sichergestellt wird, dass Ihre Anwendungen und Verwaltungsverfahren nach dem Upgrade eines Clusters zwischen Hauptversionen reibungslos funktionieren, führen Sie einige Vorausplanungen und Vorbereitungen durch. Informationen darüber, welche Arten von Verwaltungscode für Ihre AWS CLI Skripts oder auf der RDS-API basierenden Anwendungen aktualisiert werden müssen, finden Sie unter. [Wie sich direkte Upgrades auf die Parametergruppen für einen Cluster auswirken](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.ParamGroups) Lesen Sie auch [Änderungen an Cluster-Eigenschaften zwischen Aurora-MySQL-Versionen](AuroraMySQL.Upgrading.Procedure.md#AuroraMySQL.Upgrading.Attrs).

Informationen zu Problemen, auf die Sie während des Upgrades stoßen können, finden Sie unter [Problembehandlung für Aurora MySQL direkte Upgrades](AuroraMySQL.Upgrading.Troubleshooting.md). Bei Problemen, die dazu führen können, dass das Upgrade sehr lange dauert, können Sie diese Bedingungen im Voraus testen und korrigieren.

**Anmerkung**  
Ein direktes Upgrade umfasst das Herunterfahren Ihres DB-Clusters, während der Vorgang ausgeführt wird. Aurora MySQL führt ein sauberes Herunterfahren durch und schließt ausstehende Vorgänge wie Undo-Bereinigungen ab. Ein Upgrade kann lange dauern, wenn viele Undo-Datensätze bereinigt werden müssen. Wir empfehlen, das Upgrade erst durchzuführen, wenn die Länge der Verlaufsliste (History List Length, HLL) niedrig ist. Ein allgemein akzeptabler Wert für die HLL ist 100 000 oder weniger. Weitere Informationen finden Sie in diesem [Blog-Beitrag](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-2).

### Simulieren des Upgrades durch Klonen Ihres DB-Clusters
<a name="AuroraMySQL.Upgrading.Planning.clone"></a>

Sie können die Anwendungskompatibilität, die Leistung, die Wartungsverfahren und ähnliche Überlegungen für den aktualisierten Cluster überprüfen. Zu diesem Zweck können Sie vor dem eigentlichen Upgrade eine Simulation des Upgrades durchführen. Diese Technik kann besonders für Produktionscluster nützlich sein. Hier ist es wichtig, Ausfallzeiten zu minimieren und den aktualisierten Cluster einsatzbereit zu haben, sobald das Upgrade abgeschlossen ist.

Gehen Sie dazu wie folgt vor:

1. Erstellen Sie einen Klon des ursprünglichen Clusters. Folgen Sie dem Verfahren unter [Klonen eines Volumes für einen Amazon-Aurora-DB-Cluster](Aurora.Managing.Clone.md).

1. Richten Sie einen ähnlichen Satz von Writer- und Reader-DB-Instances wie im ursprünglichen Cluster ein.

1. Führen Sie ein direktes Upgrade des geklonten Clusters durch. Folgen Sie dem Verfahren unter [Erläuterung der Durchführung eines direkten Upgrades](AuroraMySQL.Upgrading.Procedure.md).

   Starten Sie das Upgrade sofort nach dem Erstellen des Klons. Auf diese Weise ist das Cluster-Volume immer noch identisch mit dem Zustand des ursprünglichen Clusters. Wenn der Klon vor dem Upgrade im Leerlauf ist, führt Aurora Datenbankbereinigungsprozesse im Hintergrund durch. In diesem Fall ist das Upgrade des Klons keine genaue Simulation für das Upgrade des ursprünglichen Clusters.

1. Sie können die Anwendungskompatibilität, Performance, Administrationsprozeduren usw. mit dem geklonten Cluster testen.

1. Wenn Probleme auftreten, passen Sie Ihre Upgrade-Pläne an, um sie zu beheben. Passen Sie beispielsweise jeden Anwendungscode so an, dass er mit dem Funktionsumfang der höheren Version kompatibel ist. Sie können abschätzen, wie lange das Upgrade wahrscheinlich auf der Grundlage der Datenmenge in Ihrem Cluster dauern wird. Sie können das Upgrade auch für eine Zeit planen, in der der Cluster nicht ausgelastet ist.

1. Nachdem Sie sich vergewissert haben, dass Ihre Anwendungen und Workload mit dem Testcluster ordnungsgemäß funktionieren, können Sie das direkte Upgrade für Ihren Produktionscluster durchführen.

1. Minimieren Sie möglichst die Gesamtausfallzeit Ihres Clusters während des Upgrades einer Hauptversion. Stellen Sie dazu sicher, dass die Workload auf dem Cluster zum Zeitpunkt des Upgrades niedrig oder Null ist. Stellen Sie insbesondere sicher, dass beim Start des Upgrades keine länger laufenden Transaktionen durchgeführt werden.

### Blau/Grün-Bereitstellungen
<a name="AuroraMySQL.UpgradingMajor.BlueGreen"></a>

In einigen Situationen ist es Ihre oberste Priorität, eine sofortige Umstellung vom alten auf einen aktualisierten Cluster durchzuführen. In solchen Situationen können Sie einen mehrstufigen Prozess verwenden, bei dem der alte und der neue Cluster ausgeführt werden. side-by-side Hier replizieren Sie Daten vom alten auf den neuen Cluster, bis der neuen Cluster zur Übernahme bereit ist. Details hierzu finden Sie unter [Verwenden von Amazon Aurora Blue/Green Deployments für Datenbank-Updates](blue-green-deployments.md).

# Vorabprüfungen für Hauptversions-Upgrades von Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks"></a>

Ein Upgrade von MySQL von einer Hauptversion auf eine andere, wie z. B. die Umstellung von MySQL 5.7 auf MySQL 8.0, beinhaltet einige wichtige architektonische Änderungen, die eine sorgfältige Planung und Vorbereitung erfordern. Im Gegensatz zu Nebenversions-Upgrades, bei denen der Schwerpunkt hauptsächlich auf der Aktualisierung der Datenbank-Engine-Software und in einigen Fällen der Systemtabellen liegt, führen Hauptversions-Upgrades von MySQL häufig zu grundlegenden Änderungen daran, wie die Datenbank ihre Metadaten speichert und verwaltet.

Zur Unterstützung bei der Identifizierung solcher Inkompatibilitäten führt Aurora beim Upgrade von Aurora-MySQL-Version 2 auf Version 3 automatisch Upgrade-Kompatibilitätsprüfungen (Vorabprüfungen) durch. Dabei werden Objekte in Ihrem Datenbank-Cluster untersucht und bekannte Inkompatibilitäten identifiziert, die das Upgrade blockieren können. Weitere Informationen zu Aurora-MySQL-Vorabprüfungen finden Sie unter [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md). Die Aurora-Vorabprüfungen werden zusätzlich zu denen ausgeführt, die vom [Upgrade-Checker-Dienstprogramm](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-utilities-upgrade.html) von Community MySQL durchgeführt werden.

Diese Vorabprüfungen müssen durchgeführt werden. Sie können nicht ausgelassen werden. Die Vorabprüfungen bieten folgende Vorteile:
+ Sie können die Wahrscheinlichkeit verringern, dass Upgrade-Fehler auftreten, die zu längeren Ausfallzeiten führen können.
+ Wenn es Inkompatibilitäten gibt, verhindert Amazon Aurora, dass das Upgrade fortgesetzt wird, und stellt Ihnen ein Protokoll mit Informationen zu den Inkompatibilitäten bereit. Sie können das Protokoll für die Vorbereitung Ihrer Datenbank auf das Upgrade auf Version 3 verwenden, indem Sie die Inkompatibilitäten beheben. Detaillierte Informationen zum Beheben von Inkompatibilitäten finden Sie unter [Vorbereiten Ihrer Installation auf ein Upgrade](https://dev.mysql.com/doc/refman/8.0/en/upgrade-prerequisites.html) in der MySQL-Dokumentation und unter [Upgrade auf MySQL 8.0?. Dies müssen Sie wissen ...](https://dev.mysql.com/blog-archive/upgrading-to-mysql-8-0-here-is-what-you-need-to-know/) im MySQL Server Blog.

  Weitere Informationen zum Ausführen von Upgrades auf MySQL 8.0 finden Sie unter [Ausführen von MySQL-Upgrades](https://dev.mysql.com/doc/refman/8.0/en/upgrading.html) in der MySQL-Dokumentation.

Die Vorabprüfungen werden ausgeführt, bevor Ihr DB-Cluster für das Hauptversions-Upgrade offline geschaltet wird. Wird während der Vorabprüfungen eine Inkompatibilität entdeckt, bricht Aurora automatisch das Upgrade ab, ehe die DB-Instance angehalten wird. Aurora generiert auch ein Ereignis für die Inkompatibilität. Weitere Informationen über Amazon-Aurora-Ereignisse finden Sie unter [Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen](USER_Events.md).

Nach Abschluss der Vorabprüfungen zeichnet Aurora detaillierte Informationen zu allen Inkompatibilitäten in der Datei `upgrade-prechecks.log` auf. In den meisten Fällen enthalten die Protokolleinträge einen Link zur MySQL-Dokumentation mit Informationen zur Lösung des Inkompatibilitätsproblems. Weitere Informationen zum Anzeigen von Protokolldateien finden Sie unter [Anzeigen und Auflisten von Datenbank-Protokolldateien](USER_LogAccess.Procedural.Viewing.md).

**Anmerkung**  
Aufgrund der Art der Vorabprüfungen werden die Objekte in Ihrer Datenbank geprüft. Diese Analyse verbraucht Ressourcen und verlängert die Zeit, die für die Durchführung des Upgrades benötigt wird. Weitere Informationen zu Leistungsaspekten bei der Vorabprüfung finden Sie unter [Vorabprüfungsprozess für Aurora MySQL](#AuroraMySQL.upgrade-prechecks.process).

**Contents**
+ [Vorabprüfungsprozess für Aurora MySQL](#AuroraMySQL.upgrade-prechecks.process)
+ [Vorabprüfungs-Protokollformat für Aurora MySQL](#AuroraMySQL.upgrade-prechecks.log-format)
+ [Beispiele für Protokollausgaben der Vorabprüfung bei Aurora MySQL](#AuroraMySQL.upgrade-prechecks.log-examples)
+ [Leistung der Vorabprüfung bei Aurora MySQL](#AuroraMySQL.upgrade-prechecks.performance)
+ [Zusammenfassung der Vorabprüfungen für Community-MySQL-Upgrades](#AuroraMySQL.upgrade-prechecks.community)
+ [Zusammenfassung der Vorabprüfungen für Aurora-MySQL-Upgrades](#AuroraMySQL.upgrade-prechecks.ams)
+ [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md)
  + [Fehler](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors)
    + [MySQL-Vorabprüfungen, die Fehler melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.mysql)
    + [Aurora-MySQL-Vorabprüfungen, die Fehler melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-errors.aurora)
  + [Warnungen](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings)
    + [MySQL-Vorabprüfungen, die Warnungen melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.mysql)
    + [Aurora-MySQL-Vorabprüfungen, die Warnungen melden](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-warnings.aurora)
  + [Hinweise](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-notices)
  + [Fehler, Warnungen oder Hinweise](AuroraMySQL.upgrade-prechecks.descriptions.md#precheck-descriptions-all)

## Vorabprüfungsprozess für Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.process"></a>

Wie bereits beschrieben, beinhaltet der Upgrade-Prozess von Aurora MySQL die Durchführung von Kompatibilitätsprüfungen (Vorabprüfungen) für Ihre Datenbank, bevor das Hauptversions-Upgrade fortgesetzt werden kann.

Bei direkten Upgrades werden die Vorabprüfungen auf Ihrer Schreiber-DB-Instance ausgeführt, während diese online ist. Wenn die Vorabprüfung erfolgreich ist, wird das Upgrade fortgesetzt. Wenn Fehler gefunden werden, werden sie in der Datei `upgrade-prechecks.log` protokolliert und das Upgrade wird abgebrochen. Bevor Sie das Upgrade erneut versuchen, beheben Sie alle in der Datei `upgrade-prechecks.log` zurückgegebenen Fehler.

Bei Snapshot-Wiederherstellungs-Upgrades wird die Vorabprüfung während des Wiederherstellungsprozesses ausgeführt. Wenn diese erfolgreich ist, wird Ihre Datenbank auf die neue Aurora-MySQL-Version aktualisiert. Wenn Fehler gefunden werden, werden sie in der Datei `upgrade-prechecks.log` protokolliert und das Upgrade wird abgebrochen. Bevor Sie das Upgrade erneut versuchen, beheben Sie alle in der Datei `upgrade-prechecks.log` zurückgegebenen Fehler.

Weitere Informationen erhalten Sie unter [Finden der Gründe für Fehler bei Hauptversion-Upgrades von Aurora MySQL](AuroraMySQL.Upgrading.failure-events.md) und [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

Wenn Sie den Vorabprüfungsstatus überwachen möchten, können Sie die folgenden Ereignisse in Ihrem DB-Cluster anzeigen.


| Vorabprüfungsstatus | Ereignismeldung | Action | 
| --- | --- | --- | 
|  Gestartet  |  Upgrade-Vorbereitung im Gange: Die Online-Upgrade-Vorabprüfungen werden gestartet.  | Keine | 
|  Fehlgeschlagen  |  Der Datenbank-Cluster befindet sich in einem Zustand, der nicht aktualisiert werden kann. Upgrade-Vorabprüfungen sind fehlgeschlagen. Weitere Informationen finden Sie in der Datei upgrade-prechecks.log. Weitere Informationen zur Behebung der Ursache des Upgrade-Fehlers finden Sie unter [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Aktualisieren.Troubleshooting.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html)  |  Überprüfen Sie `upgrade-prechecks.log` auf Fehler.  Beheben Sie die Fehler. Versuchen Sie das Upgrade erneut.  | 
|  Erfolgreich  |  Upgrade-Vorbereitung im Gange: Die Online-Upgrade-Vorabprüfungen wurden abgeschlossen.  |  Die Vorabprüfung wurde erfolgreich abgeschlossen. Es wurden keine Fehler erkannt. Überprüfen Sie `upgrade-prechecks.log` auf Warnungen und Hinweise.  | 

Weitere Informationen zum Anzeigen von Ereignissen finden Sie unter [Anzeigen von Amazon-RDS-Ereignissen](USER_ListEvents.md).

## Vorabprüfungs-Protokollformat für Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.log-format"></a>

Nachdem die Upgrade-Kompatibilitätsprüfungen (Vorabprüfungen) abgeschlossen sind, können Sie die Datei `upgrade-prechecks.log` überprüfen. Die Protokolldatei enthält die Ergebnisse, die betroffenen Objekte und Informationen zur Behebung für jede Vorabprüfung.

Fehler blockieren das Upgrade. Sie müssen sie beheben, bevor Sie das Upgrade erneut versuchen können.

Warnungen und Hinweise sind weniger wichtig, aber wir empfehlen dennoch, sie sorgfältig zu überprüfen, um sicherzustellen, dass keine Kompatibilitätsprobleme mit dem Anwendungs-Workload vorliegen. Beheben Sie erkannte Probleme zeitnah.

Die Protokolldatei hat folgendes Format:
+ `targetVersion` – Die MySQL-kompatible Version des Aurora-MySQL-Upgrades
+ `auroraServerVersion` – Die Aurora-MySQL-Version, auf der die Vorabprüfung ausgeführt wurde
+ `auroraTargetVersion` – Die Aurora-MySQL-Version, auf die Sie aktualisieren
+ `checksPerformed` – Enthält die Liste der durchgeführten Vorabprüfungen
+ `id` – Der Name der gerade ausgeführten Vorabprüfung
+ `title` – Eine Beschreibung der gerade ausgeführten Vorabprüfung
+ `status` – Dies gibt nicht an, ob die Vorabprüfung erfolgreich war oder nicht, sondern zeigt den Status der Abfrage zur Vorabprüfung an.
  + `OK` – Die Abfrage zur Vorabprüfung wurde erfolgreich ausgeführt und abgeschlossen.
  + `ERROR` – Die Abfrage zur Vorabprüfung konnte nicht ausgeführt werden. Dies kann auf Probleme wie Ressourcenbeschränkungen, unerwartete Instance-Neustarts oder die Unterbrechung der Abfrage zur Vorabprüfung der Kompatibilität zurückzuführen sein.

    Weitere Informationen finden Sie in [diesem Beispiel](#precheck-query-failed).
+ `description` – Eine allgemeine Beschreibung der Inkompatibilität und wie das Problem behoben werden kann
+ `documentationLink` – Gegebenenfalls finden Sie hier einen Link zur entsprechenden Aurora-MySQL- oder MySQL-Dokumentation. Weitere Informationen finden Sie unter [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).
+ `detectedProblems` – Wenn bei der Vorabprüfung ein Fehler, eine Warnung oder ein Hinweis zurückgegeben wird, werden hier Details zur Inkompatibilität und gegebenenfalls inkompatible Objekte angezeigt.
  + `level` – Die bei der Vorabprüfung festgestellte Stufe der Inkompatibilität. Folgende Stufen sind gültig:
    + `Error` – Das Upgrade kann erst fortgesetzt werden, wenn Sie die Inkompatibilität behoben haben
    + `Warning` – Das Upgrade kann fortgesetzt werden, es wurde jedoch ein veraltetes Objekt, eine veraltete Syntax oder Konfiguration erkannt. Lesen Sie die Warnungen sorgfältig und beheben Sie sie zeitnah, um Probleme in künftigen Versionen zu vermeiden. 
    + `Notice` – Das Upgrade kann fortgesetzt werden, es wurde jedoch ein veraltetes Objekt, eine veraltete Syntax oder Konfiguration erkannt. Lesen Sie die Hinweise sorgfältig und beheben Sie sie zeitnah, um Probleme in künftigen Versionen zu vermeiden. 
  + `dbObject` – Der Name des Datenbankobjekts, in dem die Inkompatibilität festgestellt wurde
  + `description` – Eine detaillierte Beschreibung der Inkompatibilität und wie das Problem behoben werden kann
+ `errorCount` – Die Anzahl der erkannten Inkompatibilitätsfehler. Diese blockieren das Upgrade.
+ `warningCount` – Die Anzahl der erkannten Inkompatibilitätswarnungen. Diese blockieren das Upgrade nicht, beheben Sie sie jedoch zeitnah, um Probleme in künftigen Versionen zu vermeiden.
+ `noticeCount` – Die Anzahl der erkannten Inkompatibilitätshinweise. Diese verhindern das Upgrade nicht, sollten jedoch zeitnah behoben werden, um Probleme in künftigen Versionen zu vermeiden.
+ `Summary` – Eine Zusammenfassung der Anzahl von Kompatibilitätsfehlern, -warnungen und -hinweisen aus der Vorabprüfung

## Beispiele für Protokollausgaben der Vorabprüfung bei Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.log-examples"></a>

Die folgenden Beispiele zeigen die Protokollausgaben der Vorabprüfung, die Sie möglicherweise angezeigt bekommen. Weitere Informationen zu den ausgeführten Vorabprüfungen finden Sie unter [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

**Vorabprüfungsstatus OK, keine Inkompatibilität erkannt**  
Die Abfrage zur Vorabprüfung wurde erfolgreich abgeschlossen. Es wurden keine Inkompatibilitäten erkannt.  

```
{
  "id": "auroraUpgradeCheckIndexLengthLimitOnTinytext",
  "title": "Check for the tables with indexes defined with prefix length greater than 255 bytes on tiny text columns",
  "status": "OK",
  "detectedProblems": []
},
```

**Vorabprüfungsstatus OK, Fehler erkannt**  
Die Abfrage zur Vorabprüfung wurde erfolgreich abgeschlossen. Es wurde ein Fehler erkannt.  

```
{
  "id": "auroraUpgradeCheckForPrefixIndexOnGeometryColumns",
  "title": "Check for geometry columns on prefix indexes",
  "status": "OK",
  "description": "Consider dropping the prefix indexes of geometry columns and restart the upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test25.sbtest1",
        "description": "Table `test25`.`sbtest1` has an index `idx_t1` on geometry column/s. Mysql 8.0 does not support this type of index on a geometry column https://dev.mysql.com/worklog/task/?id=11808. To upgrade to MySQL 8.0, Run 'DROP INDEX `idx_t1` ON `test25`.`sbtest1`;"
      },
 }
```

**Vorabprüfungsstatus OK, Warnung erkannt**  
Warnungen können zurückgegeben werden, wenn eine Vorabprüfung erfolgreich oder nicht erfolgreich war.  
Hier wurde die Abfrage zur Vorabprüfung erfolgreich abgeschlossen. Es wurden zwei Warnungen erkannt.  

```
{
  "id": "zeroDatesCheck",
  "title": "Zero Date, Datetime, and Timestamp values",
  "status": "OK",
  "description": "Warning: By default zero date/datetime/timestamp values are no longer allowed in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in SQL_MODE by default. These modes should be used with strict mode as they will be merged with strict mode in a future release. If you do not include these modes in your SQL_MODE setting, you are able to insert date/datetime/timestamp values that contain zeros. It is strongly advised to replace zero values with valid ones, as they may not work correctly in the future.",
  "documentationLink": "https://lefred.be/content/mysql-8-0-and-wrong-dates/",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "global.sql_mode",
        "description": "does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      },
      {
        "level": "Warning",
        "dbObject": "session.sql_mode",
        "description": " of 10 session(s) does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      }
    ]
}
```

**Vorabprüfungsstatus ERROR, keine Inkompatibilitäten gemeldet**  
Die Abfrage zur Vorabprüfung schlug mit einem Fehler fehl, sodass Inkompatibilitäten nicht verifiziert werden konnten.  

```
{
  "id": "auroraUpgradeCheckForDatafilePathInconsistency",
  "title": "Check for inconsistency related to ibd file path.",
  "status": "ERROR",
  "description": "Can't connect to MySQL server on 'localhost:3306' (111) at 13/08/2024 12:22:20 UTC. This failure can occur due to low memory available on the instance for executing upgrade prechecks. Please check 'FreeableMemory' Cloudwatch metric to verify the available memory on the instance while executing prechecks. If instance ran out of memory, we recommend to retry the upgrade on a higher instance class."
}
```
Dieser Fehler kann auftreten, wenn die Instance unerwartet neu gestartet wurde oder eine Abfrage zur Vorabprüfung der Kompatibilität in der Datenbank während der Ausführung unterbrochen wurde. Bei kleineren DB-Instance-Klassen kann dies beispielsweise auftreten, wenn der verfügbare Speicher auf der Instance knapp wird.  
Sie können die `FreeableMemory` CloudWatch Amazon-Metrik verwenden, um den verfügbaren Speicher auf der Instance zu überprüfen, während Sie Vorabprüfungen ausführen. Wenn der Instance nicht mehr genügend Arbeitsspeicher zur Verfügung steht, empfehlen wir, das Upgrade auf einer größeren DB-Instance-Klasse erneut durchzuführen. In einigen Fällen können Sie eine [Blau/Grün-Bereitstellung](blue-green-deployments-overview.md) verwenden. Auf diese Weise können Vorabprüfungen und Upgrades im „grünen“ DB-Cluster unabhängig vom Produktions-Workload ausgeführt werden, wodurch auch Systemressourcen verbraucht werden.  
Weitere Informationen finden Sie unter [Beheben von Problemen mit der Speichernutzung bei Aurora-MySQL-Datenbanken](ams-workload-memory.md).

**Zusammenfassung der Vorabprüfung: Ein Fehler und drei Warnungen erkannt**  
Die Vorabprüfungen der Kompatibilität enthalten auch Informationen zu den Quell- und Zielversionen von Aurora MySQL sowie eine Zusammenfassung der Anzahl von Fehlern, Warnungen und Hinweisen am Ende der Ausgabe der Vorabprüfung.  
Die folgende Ausgabe zeigt beispielsweise, dass versucht wurde, ein Upgrade von Aurora MySQL 2.11.6 auf Aurora MySQL 3.07.1 durchzuführen. Das Upgrade hat einen Fehler, drei Warnungen und keine Hinweise zurückgegeben. Da Upgrades nicht fortgesetzt werden können, wenn ein Fehler zurückgegeben wird, müssen Sie das [routineSyntaxCheck](AuroraMySQL.upgrade-prechecks.descriptions.md#routineSyntaxCheck)Kompatibilitätsproblem beheben und das Upgrade erneut versuchen.  

```
{
  "serverAddress": "/tmp%2Fmysql.sock",
  "serverVersion": "5.7.12 - MySQL Community Server (GPL)",
  "targetVersion": "8.0.36",
  "auroraServerVersion": "2.11.6",
  "auroraTargetVersion": "3.07.1",
  "outfilePath": "/rdsdbdata/tmp/PreChecker.log",
  "checksPerformed": [{
      ... output for each individual precheck ...
      .
      .
      {
        "id": "oldTemporalCheck",
        "title": "Usage of old temporal type",
        "status": "OK",
          "detectedProblems": []
      },
      {
        "id": "routinesSyntaxCheck",
        "title": "MySQL 8.0 syntax check for routine-like objects",
        "status": "OK",
        "description": "The following objects did not pass a syntax check with the latest MySQL 8.0 grammar. A common reason is that they reference names that conflict with new reserved keywords. You must update these routine definitions and `quote` any such references before upgrading.",
        "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html",
        "detectedProblems": [{
            "level": "Error",
            "dbObject": "test.select_res_word",
            "description": "at line 2,18: unexpected token 'except'"
        }]
      },
      .
      .
      .
      {
        "id": "zeroDatesCheck",
        "title": "Zero Date, Datetime, and Timestamp values",
        "status": "OK",
        "description": "Warning: By default zero date/datetime/timestamp values are no longer allowed in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in SQL_MODE by default. These modes should be used with strict mode as they will be merged with strict mode in a future release. If you do not include these modes in your SQL_MODE setting, you are able to insert date/datetime/timestamp values that contain zeros. It is strongly advised to replace zero values with valid ones, as they may not work correctly in the future.",
        "documentationLink": "https://lefred.be/content/mysql-8-0-and-wrong-dates/",
        "detectedProblems": [{
            "level": "Warning",
            "dbObject": "global.sql_mode",
            "description": "does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
            },
            {
            "level": "Warning",
            "dbObject": "session.sql_mode",
            "description": " of 8 session(s) does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
            }
          ]
       },
       .
       .
       .
  }],
  "errorCount": 1,
  "warningCount": 3,
  "noticeCount": 0,
  "Summary": "1 errors were found. Please correct these issues before upgrading to avoid compatibility issues."
}
```

## Leistung der Vorabprüfung bei Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.performance"></a>

Die Vorabprüfungen der Kompatibilität erfolgen vor der Offline-Schaltung der DB-Instance für das Upgrade und führen unter normalen Umständen zu keiner Ausfallzeit. Sie können jedoch Auswirkungen auf den Anwendungs-Workload haben, der auf der Schreiber-DB-Instance ausgeführt wird. Die Vorabprüfungen greifen über [information\$1schema](https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.7/en/information-schema-introduction.html)-Tabellen auf das Datenwörterbuch zu, was bei vielen Datenbankobjekten langsam sein kann. Berücksichtigen Sie folgende Faktoren:
+ Die Dauer der Vorabprüfung hängt von der Anzahl der Datenbankobjekte wie Tabellen, Spalten, Routinen und Einschränkungen ab. Die Ausführung von DB-Clustern mit einer großen Anzahl von Objekten kann länger dauern.

  Dies [removedFunctionsCheck](AuroraMySQL.upgrade-prechecks.descriptions.md#removedFunctionsCheck)kann beispielsweise länger dauern und je nach Anzahl der [gespeicherten Objekte](https://dev.mysql.com/doc/refman/5.7/en/stored-objects.html) mehr Ressourcen verbrauchen.
+ Bei direkten Upgrades kann die Verwendung einer größeren DB-Instance-Klasse (z. B. db.r5.24xlarge oder db.r6g.16xlarge) dazu beitragen, dass das Upgrade schneller abgeschlossen wird, da mehr CPU verwendet wird. Eine Verkleinerung ist nach dem Upgrade möglich.
+ Abfragen zum `information_schema` über mehrere Datenbanken hinweg können langsam sein, insbesondere bei vielen Objekten und auf kleineren DB-Instances. In solchen Fällen sollten Sie die Verwendung von Klonen, Snapshot-Wiederherstellungen oder einer [Blau/Grün-Bereitstellung](blue-green-deployments-overview.md) für Upgrades in Betracht ziehen.
+ Die Vorabprüfungs-Ressourcennutzung (CPU, Arbeitsspeicher) kann mit mehr Objekten zunehmen, was zu längeren Laufzeiten auf kleineren DB-Instances führt. In solchen Fällen sollten Sie erwägen, Tests mithilfe von Klonen, Snapshot-Wiederherstellung oder einer Blue/Green Bereitstellung für Upgrades durchzuführen.

  Wenn die Vorabprüfungen aufgrund fehlender Ressourcen fehlschlagen, können Sie dies anhand der Statusausgabe im Vorabprüfungsprotokoll erkennen:

  ```
  "status": "ERROR",
  ```

Weitere Informationen erhalten Sie unter [Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) und [Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning).

## Zusammenfassung der Vorabprüfungen für Community-MySQL-Upgrades
<a name="AuroraMySQL.upgrade-prechecks.community"></a>

Im Folgenden finden Sie eine allgemeine Liste der Inkompatibilitäten zwischen MySQL 5.7 und 8.0:
+ Ihr MySQL-5.7-kompatibler DB-Cluster darf keine Funktionen verwenden, die in MySQL 8.0 nicht unterstützt werden.

  Weitere Informationen finden Sie unter [In MySQL 8.0 entfernte Funktionen](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals) in der MySQL-Dokumentation.
+ Es darf keine Verletzungen von Schlüsselwörtern oder reservierten Wörtern geben. Einige Schlüsselwörter sind in MySQL 8.0 möglicherweise reserviert, die zuvor nicht reserviert waren.

  Weitere Informationen finden Sie unter [Schlüsselwörter und reservierte Wörter](https://dev.mysql.com/doc/refman/8.0/en/keywords.html) in der MySQL-Dokumentation.
+ Um die Unicode-Unterstützung zu verbessern, sollten Sie die Konvertierung von Objekten, die den `utf8mb3`-Zeichensatz verwenden, in Objekte in Betracht ziehen, die den `utf8mb4`-Zeichensatz verwenden. Der `utf8mb3`-Zeichensatz ist veraltet. Sie sollten darüber hinaus anstelle von `utf8mb4` die Verwendung von `utf8` für Zeichensatzverweise in Betracht ziehen, da `utf8` zurzeit ein Alias für den `utf8mb3`-Zeichensatz ist.

  Weitere Informationen finden Sie unter [Der utf8mb3-Zeichensatz (UTF-8-Unicode-Kodierung mit 3 Bytes)](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html) in der MySQL-Dokumentation.
+ Es darf keine InnoDB-Tabellen mit einem nicht standardmäßigen Zeilenformat geben.
+ Es darf keine `ZEROFILL`- oder `display`-Längentyp-Attribute geben.
+ Es darf keine partitionierte Tabelle mit einer Speicher-Engine geben, für die es keine native Partitionierungsunterstützung gibt.
+ Es darf keine Tabellen in der MySQL 5.7 `mysql`-Systemdatenbank geben, die denselben Namen wie eine Tabelle haben, die vom MySQL 8.0-Daten-Dictionary verwendet wird.
+ Es darf keine Tabellen geben, die veraltete Datentypen oder Funktionen verwenden.
+ Es darf keine Namen für Fremdschlüsseleinschränkungen mit mehr als 64 Zeichen geben.
+ Es dürfen keine veralteten SQL-Modi in Ihrer `sql_mode`-Systemvariableneinstellung definiert sein.
+ Es darf keine Tabellen oder gespeicherte Prozeduren mit einzelnen `ENUM`- oder `SET`-Spaltenelementen geben, deren Länge 255 Zeichen überschreitet.
+ Es darf keine Tabellenpartitionen innerhalb von freigegebenen InnoDB-Tablespaces geben.
+ Es darf keine zirkulären Referenzen in Tablespace-Datendateipfaden geben.
+ Es darf keine Abfragen oder gespeicherten Programmdefinitionen geben, die `ASC`- oder `DESC`-Qualifizierer für `GROUP BY`-Klauseln verwenden.
+ Es darf keine entfernten Systemvariablen geben und Systemvariablen müssen die neuen Standardwerte für MySQL 8.0 verwenden.
+ Es darf keine Nullwerte (`0`) für Date, Datetime oder Timestamp geben.
+ Es darf keine Schemainkonsistenzen geben, die auf das Entfernen oder die Beschädigung von Dateien zurückzuführen sind.
+ Es darf keine Tabellennamen geben, die die `FTS`-Zeichenfolge enthalten.
+ Es darf keine InnoDB-Tabellen geben, die zu einer anderen Engine gehören.
+ Es darf keine Tabellen- oder Schemanamen geben, die für MySQL 5.7 ungültig sind.

Weitere Informationen zu den ausgeführten Vorabprüfungen finden Sie unter [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

Weitere Informationen zum Ausführen von Upgrades auf MySQL 8.0 finden Sie unter [Ausführen von MySQL-Upgrades](https://dev.mysql.com/doc/refman/8.0/en/upgrading.html) in der MySQL-Dokumentation. Eine allgemeine Beschreibung der Änderungen in MySQL 8.0 finden Sie unter [Was ist neu in MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html) in der MySQL-Dokumentation.

## Zusammenfassung der Vorabprüfungen für Aurora-MySQL-Upgrades
<a name="AuroraMySQL.upgrade-prechecks.ams"></a>

Aurora MySQL hat beim Upgrade von Version 2 auf Version 3 seine eigenen spezifischen Anforderungen, darunter die folgenden:
+ Es darf keine veraltete SQL-Syntax wie `SQL_CACHE`, `SQL_NO_CACHE` und `QUERY_CACHE` in Ansichten, Routinen, Triggern und Ereignissen geben.
+ Es darf in keiner Tabelle eine `FTS_DOC_ID`-Spalte ohne `FTS`-Index geben.
+ Es darf keine Nichtübereinstimmung von Spaltendefinitionen zwischen dem InnoDB-Datenwörterbuch und der tatsächlichen Tabellendefinition geben.
+ Alle Datenbank- und Tabellennamen dürfen nur Kleinbuchstaben enthalten, wenn der Parameter `lower_case_table_names` auf `1` gesetzt ist.
+ Es darf keine Ereignisse und Trigger mit fehlenden oder leeren Definern oder ungültigen Erstellungskontexten geben.
+ Alle Triggernamen in einer Datenbank müssen eindeutig sein.
+ Die DDL-Wiederherstellung und schnelle DDL werden in Aurora-MySQL-Version 3 nicht unterstützt. Es darf keine Artefakte in Datenbanken geben, die mit diesen Funktionen in Zusammenhang stehen.
+ Tabellen mit dem Zeilenformat `REDUNDANT` oder `COMPACT` dürfen keine Indizes größer als 767 Byte enthalten.
+ Die Präfixlänge von Indizes, die für `tiny`-Textspalten definiert sind, darf 255 Byte nicht überschreiten. Mit dem `utf8mb4`-Zeichensatz ist die unterstützte Präfixlänge auf 63 Zeichen begrenzt.

  Eine größere Präfixlänge war in MySQL 5.7 unter Verwendung des Parameters `innodb_large_prefix` zulässig. Dieser Parameter ist seit MySQL 8.0 veraltet.
+ Es darf keine Inkonsistenzen der InnoDB-Metadaten in der Tabelle `mysql.host` geben.
+ Es darf keine Nichtübereinstimmung von Spaltendatentypen in den Systemtabellen geben.
+ Es darf keine XA-Transaktionen im `prepared`-Status geben.
+ Spaltennamen in Ansichten dürfen nicht länger als 64 Zeichen sein.
+ Sonderzeichen in gespeicherten Prozeduren dürfen nicht inkonsistent sein.
+ Es darf keine Inkonsistenz bei den Datendateipfaden von Tabellen geben.

Weitere Informationen zu den ausgeführten Vorabprüfungen finden Sie unter [Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL](AuroraMySQL.upgrade-prechecks.descriptions.md).

# Referenz zu Vorabprüfungsbeschreibungen für Aurora MySQL
<a name="AuroraMySQL.upgrade-prechecks.descriptions"></a>

Die Upgrade-Vorabprüfungen für Aurora MySQL werden hier ausführlich beschrieben.

**Contents**
+ [Fehler](#precheck-descriptions-errors)
  + [MySQL-Vorabprüfungen, die Fehler melden](#precheck-descriptions-errors.mysql)
  + [Aurora-MySQL-Vorabprüfungen, die Fehler melden](#precheck-descriptions-errors.aurora)
+ [Warnungen](#precheck-descriptions-warnings)
  + [MySQL-Vorabprüfungen, die Warnungen melden](#precheck-descriptions-warnings.mysql)
  + [Aurora-MySQL-Vorabprüfungen, die Warnungen melden](#precheck-descriptions-warnings.aurora)
+ [Hinweise](#precheck-descriptions-notices)
+ [Fehler, Warnungen oder Hinweise](#precheck-descriptions-all)

## Fehler
<a name="precheck-descriptions-errors"></a>

Die folgenden Vorabprüfungen generieren Fehler, wenn die Vorabprüfung fehlschlägt und das Upgrade nicht fortgesetzt werden kann.

**Topics**
+ [MySQL-Vorabprüfungen, die Fehler melden](#precheck-descriptions-errors.mysql)
+ [Aurora-MySQL-Vorabprüfungen, die Fehler melden](#precheck-descriptions-errors.aurora)

### MySQL-Vorabprüfungen, die Fehler melden
<a name="precheck-descriptions-errors.mysql"></a>

Die folgenden Vorabprüfungen stammen von Community MySQL:
+ [checkTableMysqlSchema](#checkTableMysqlSchema)
+ [circularDirectoryCheck](#circularDirectoryCheck)
+ [columnsWhichCannotHaveDefaultsCheck](#columnsWhichCannotHaveDefaultsCheck)
+ [depreciatedSyntaxCheck](#depreciatedSyntaxCheck)
+ [engineMixupCheck](#engineMixupCheck)
+ [enumSetElementLengthCheck](#enumSetElementLengthCheck)
+ [foreignKeyLengthCheck](#foreignKeyLengthCheck)
+ [getDuplicateTriggers](#getDuplicateTriggers)
+ [getEventsWithNullDefiner](#getEventsWithNullDefiner)
+ [getMismatchedMetadata](#getMismatchedMetadata)
+ [getTriggersWithNullDefiner](#getTriggersWithNullDefiner)
+ [getValueOfVariablelower\$1case\$1table\$1names](#getValueOfVariable)
+ [groupByAscSyntaxCheck](#groupByAscSyntaxCheck)
+ [mysqlEmptyDotTableSyntaxCheck](#mysqlEmptyDotTableSyntaxCheck)
+ [mysqlIndexTooLargeCheck](#mysqlIndexTooLargeCheck)
+ [mysqlInvalid57NamesCheck](#mysqlInvalid57NamesCheck)
+ [mysqlOrphanedRoutinesCheck](#mysqlOrphanedRoutinesCheck)
+ [mysqlSchemaCheck](#mysqlSchemaCheck)
+ [nonNativePartitioningCheck](#nonNativePartitioningCheck)
+ [oldTemporalCheck](#oldTemporalCheck)
+ [partitionedTablesInSharedTablespaceCheck](#partitionedTablesInSharedTablespace)
+ [removedFunctionsCheck](#removedFunctionsCheck)
+ [routineSyntaxCheck](#routineSyntaxCheck)
+ [schemaInconsistencyCheck](#schemaInconsistencyCheck)

**checkTableMysqlSchema**  
**Stufe der Vorabprüfung: Fehler**  
**Probleme, die vom Befehl `check table x for upgrade` für das `mysql`-Schema gemeldet wurden**  
Bevor das Upgrade auf Aurora-MySQL-Version 3 gestartet wird, wird `check table for upgrade` für jede Tabelle im `mysql`-Schema auf der DB-Instance ausgeführt. Der Befehl `check table for upgrade` untersucht Tabellen auf mögliche Probleme, die bei einem Upgrade auf eine neuere Version von MySQL auftreten könnten. Das Ausführen dieses Befehls vor dem Upgrade kann helfen, etwaige Inkompatibilitäten im Voraus zu identifizieren und zu beheben, sodass der eigentliche Upgrade-Prozess reibungsloser abläuft.  
Mit diesem Befehl werden verschiedene Prüfungen für jede Tabelle durchgeführt, z. B. die folgenden:  
+ Überprüfung, ob die Tabellenstruktur und die Metadaten mit der Ziel-MySQL-Version kompatibel sind
+ Prüfung auf veraltete oder entfernte Funktionen, die von der Tabelle verwendet werden
+ Sicherstellung, dass die Tabelle ordnungsgemäß und ohne Datenverlust aktualisiert werden kann
Weitere Informationen finden Sie unter [CHECK-TABLE-Anweisung](https://dev.mysql.com/doc/refman/5.7/en/check-table.html) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "checkTableMysqlSchema",
  "title": "Issues reported by 'check table x for upgrade' command for mysql schema.",
  "status": "OK",
  "detectedProblems": []
}
```
Die Ausgabe dieser Vorabprüfung hängt davon ab, welcher Fehler aufgetreten ist und wann er aufgetreten ist, da `check table for upgrade` mehrere Prüfungen durchführt.  
Wenn Sie bei dieser Vorabprüfung auf Fehler stoßen, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.

**circularDirectoryCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Zirkuläre Verzeichnisverweise in Tablespace-Datendateipfaden**  
Ab [MySQL 8.0.17](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-17.html) erlaubt die Klausel `CREATE TABLESPACE ... ADD DATAFILE` keine zirkulären Verzeichnisverweise mehr. Entfernen Sie zur Vermeidung von Upgrade-Problemen alle zirkulären Verzeichnisverweise aus den Tablespace-Datendateipfaden, bevor Sie auf Aurora-MySQL-Version 3 aktualisieren.  
**Beispielausgabe:**  

```
{
  "id": "circularDirectory",
  "title": "Circular directory references in tablespace data file paths",
  "status": "OK",
  "description": "Error: Following tablespaces contain circular directory references (e.g. the reference '/../') in data file paths which as of MySQL 8.0.17 are not permitted by the CREATE TABLESPACE ... ADD DATAFILE clause. An exception to the restriction exists on Linux, where a circular directory reference is permitted if the preceding directory is a symbolic link. To avoid upgrade issues, remove any circular directory references from tablespace data file paths before upgrading.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-innodb-changes",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "ts2",
        "description": "circular reference in datafile path: '/home/ec2-user/dbdata/mysql_5_7_44/../ts2.ibd'",
        "dbObjectType": "Tablespace"
      }
  ]
}
```
Wenn Sie diesen Fehler erhalten, erstellen Sie Ihre Tabellen neu, indem Sie einen [Datei-pro-Tabelle-Tablespace](https://dev.mysql.com/doc/refman/8.0/en/innodb-file-per-table-tablespaces.html) verwenden. Verwenden Sie Standarddateipfade für alle Tablespace- und Tabellendefinitionen.  
Aurora MySQL unterstützt keine allgemeinen Tablespaces oder `CREATE TABLESPACE`-Befehle.  
Bevor Sie Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Online-DDL-Operationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.
Nach dem Neuerstellen ist die Vorabprüfung erfolgreich, sodass das Upgrade fortgesetzt werden kann.  

```
{
  "id": "circularDirectoryCheck",
  "title": "Circular directory references in tablespace data file paths",
  "status": "OK",
  "detectedProblems": []
},
```

**columnsWhichCannotHaveDefaultsCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Spalten, die keine Standardwerte haben dürfen**  
Vor MySQL 8.0.13 dürfen `BLOB`-, `TEXT`-, `GEOMETRY`- und `JSON`-Spalten keine [Standardwerte](https://dev.mysql.com/doc/refman/5.7/en/data-type-defaults.html) haben. Entfernen Sie alle Standardklauseln in diesen Spalten, bevor Sie ein Upgrade auf Aurora-MySQL-Version 3 durchführen. Weitere Informationen zu Änderungen an der Standardbehandlung für diese Datentypen finden Sie unter [Standardwerte für Datentypen](https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "columnsWhichCannotHaveDefaultsCheck",
  "title": "Columns which cannot have default values",
  "status": "OK",
  "description": "Error: The following columns are defined as either BLOB, TEXT, GEOMETRY or JSON and have a default value set. These data types cannot have default values in MySQL versions prior to 8.0.13, while starting with 8.0.13, the default value must be specified as an expression. In order to fix this issue, please use the ALTER TABLE ... ALTER COLUMN ... DROP DEFAULT statement.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html#data-type-defaults-explicit",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.test_blob_default.geo_col",
        "description": "geometry"
      }
  ]
},
```
Die Vorabprüfung gibt einen Fehler zurück, weil die Spalte `geo_col` in der Tabelle `test.test_blob_default` einen `BLOB`-, `TEXT`-, `GEOMETRY`- oder `JSON`-Datentyp mit einem angegebenen Standardwert verwendet.  
Ein Blick auf die Tabellendefinition zeigt, dass die Spalte `geo_col` als `geo_col geometry NOT NULL default ''` definiert ist.  

```
mysql> show create table test_blob_default\G
*************************** 1. row ***************************
       Table: test_blob_default
Create Table: CREATE TABLE `test_blob_default` (
  `geo_col` geometry NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=latin1
```
Durch das Entfernen dieser Standardklausel kann die Vorabprüfung erfolgreich abgeschlossen werden.  
Bevor Sie `ALTER TABLE`-Anweisungen ausführen oder Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Online-DDL-Operationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.

```
mysql> ALTER TABLE test_blob_default modify COLUMN geo_col geometry NOT NULL;
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table test_blob_default\G
*************************** 1. row ***************************
       Table: test_blob_default
Create Table: CREATE TABLE `test_blob_default` (
  `geo_col` geometry NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
```
Die Vorabprüfung ist erfolgreich und Sie können das Upgrade erneut versuchen.  

```
{
  "id": "columnsWhichCannotHaveDefaultsCheck",
  "title": "Columns which cannot have default values",
  "status": "OK",
  "detectedProblems": []
},
```

**depreciatedSyntaxCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Verwendung von veralteten Schlüsselwörtern in der Definition**  
MySQL 8.0 hat den [Abfrage-Cache](https://dev.mysql.com/doc/refman/5.7/en/query-cache.html) entfernt. Infolgedessen wurde ein Teil der für den Abfrage-Cache spezifischen SQL-Syntax entfernt. Wenn eines Ihrer Datenbankobjekte die Schlüsselwörter `QUERY CACHE`, `SQL_CACHE` oder `SQL_NO_CACHE` enthält, wird ein Fehler bei der Vorabprüfung zurückgegeben. Sie beheben dieses Problem, indem Sie diese Objekte erneut erstellen und die genannten Schlüsselwörter entfernen.  
**Beispielausgabe:**  

```
{
  "id": "depreciatedSyntaxCheck",
  "title": "Usage of depreciated keywords in definition",
  "status": "OK",
  "description": "Error: The following DB objects contain keywords like 'QUERY CACHE', 'SQL_CACHE', 'SQL_NO_CACHE' which are not supported in major version 8.0. It is recommended to drop these DB objects or rebuild without any of the above keywords before upgrade.",
  "detectedProblems": [
      {
"level": "Error",
"dbObject": "test.no_query_cache_check",
"description": "PROCEDURE uses depreciated words in definition"
      }
  ]
}
```
Die Vorabprüfung meldet, dass die gespeicherte Prozedur `test.no_query_cache_check` eines der entfernten Schlüsselwörter verwendet. Ein Blick auf die Prozedurdefinition zeigt, dass sie `SQL_NO_CACHE` verwendet.  

```
mysql> show create procedure test.no_query_cache_check\G
*************************** 1. row ***************************
           Procedure: no_query_cache_check
            sql_mode:
    Create Procedure: CREATE DEFINER=`reinvent`@`%` PROCEDURE `no_query_cache_check`()
BEGIN
    SELECT SQL_NO_CACHE k from sbtest1 where id > 10 and id < 20 group by k asc;
END
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Entfernen Sie das Schlüsselwort.  

```
mysql> drop procedure test.no_query_cache_check;
Query OK, 0 rows affected (0.01 sec)

mysql> delimiter //

mysql> CREATE DEFINER=`reinvent`@`%` PROCEDURE `no_query_cache_check`() BEGIN     SELECT k from sbtest1 where id > 10 and id < 20 group by k asc; END//
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
```
Nach dem Entfernen des Schlüsselworts wird die Vorabprüfung erfolgreich abgeschlossen.  

```
{
  "id": "depreciatedSyntaxCheck",
  "title": "Usage of depreciated keywords in definition",
  "status": "OK",
  "detectedProblems": []
}
```

**engineMixupCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Von InnoDB erkannte Tabellen, die zu einer anderen Engine gehören**  
Ähnlich wie [schemaInconsistencyCheck](#schemaInconsistencyCheck) stellt diese Vorabprüfung sicher, dass die Tabellenmetadaten in MySQL konsistent sind, bevor mit dem Upgrade fortgefahren wird.   
Wenn Sie bei dieser Vorabprüfung auf Fehler stoßen, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.  
**Beispielausgabe:**  

```
{
  "id": "engineMixupCheck",
  "title": "Tables recognized by InnoDB that belong to a different engine",
  "status": "OK",
  "description": "Error: Following tables are recognized by InnoDB engine while the SQL layer believes they belong to a different engine. Such situation may happen when one removes InnoDB table files manually from the disk and creates e.g. a MyISAM table with the same name.\n\nA possible way to solve this situation is to e.g. in case of MyISAM table:\n\n1. Rename the MyISAM table to a temporary name (RENAME TABLE).\n2. Create some dummy InnoDB table (its definition does not need to match), then copy (copy, not move) and rename the dummy .frm and .ibd files to the orphan name using OS file commands.\n3. The orphan table can be then dropped (DROP TABLE), as well as the dummy table.\n4. Finally the MyISAM table can be renamed back to its original name.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "mysql.general_log_backup",
        "description": "recognized by the InnoDB engine but belongs to CSV"
      }
  ]
}
```

**enumSetElementLengthCheck**  
**Stufe der Vorabprüfung: Fehler**  
**`ENUM`- und `SET`-Spaltendefinitionen mit Elementen, die länger als 255 Zeichen sind**  
Tabellen und gespeicherte Prozeduren dürfen keine `ENUM`- oder `SET`-Spaltenelemente enthalten, die 255 Zeichen oder 1 020 Byte überschreiten. Vor MySQL 8.0 betrug die maximale kombinierte Länge 64 KB, aber 8.0 begrenzt einzelne Elemente auf 255 Zeichen oder 1 020 Byte (mit Unterstützung für Multibyte). Wenn bei der Vorabprüfung für `enumSetElementLengthCheck` ein Fehler auftritt, ändern Sie alle Elemente, die diese neuen Grenzwerte überschreiten, bevor Sie das Upgrade erneut versuchen.  
**Beispielausgabe:**  

```
{
  "id": "enumSetElementLengthCheck",
  "title": "ENUM/SET column definitions containing elements longer than 255 characters",
  "status": "OK",
  "description": "Error: The following columns are defined as either ENUM or SET and contain at least one element longer that 255 characters. They need to be altered so that all elements fit into the 255 characters limit.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/string-type-overview.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.large_set.s",
        "description": "SET contains element longer than 255 characters"
      }
  ]
},
```
Bei der Vorabprüfung wird ein Fehler gemeldet, da die Spalte `s` in der Tabelle `test.large_set` ein `SET`-Element mit mehr als 255 Zeichen enthält.  
Nach dem Reduzieren der `SET`-Größe für diese Spalte ist die Vorabprüfung erfolgreich, sodass das Upgrade fortgesetzt werden kann.  

```
{
  "id": "enumSetElementLenghtCheck",
  "title": "ENUM/SET column definitions containing elements longer than 255 characters",
  "status": "OK",
  "detectedProblems": []
},
```

**foreignKeyLengthCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Namen für Fremdschlüsseleinschränkungen mit mehr als 64 Zeichen**  
In MySQL ist die Länge von Bezeichnern auf 64 Zeichen begrenzt, wie in der [MySQL-Dokumentation](https://dev.mysql.com/doc/refman/8.0/en/identifier-length.html) beschrieben. Aufgrund von [Problemen](https://bugs.mysql.com/bug.php?id=88118), bei denen Fremdschlüssellängen diesem Wert entsprechen oder diesen überschreiten könnten, was zu Upgrade-Fehlern führte, wurde diese Vorabprüfung implementiert. Wenn bei dieser Vorabprüfung Fehler auftreten, sollten Sie Ihre Einschränkung [ändern oder umbenennen](https://dev.mysql.com/doc/refman/8.0/en/alter-table.html), sodass sie weniger als 64 Zeichen umfasst, bevor Sie das Upgrade erneut versuchen.  
**Beispielausgabe:**  

```
{
  "id": "foreignKeyLength",
  "title": "Foreign key constraint names longer than 64 characters",
  "status": "OK",
  "detectedProblems": []
}
```

**getDuplicateTriggers**  
**Stufe der Vorabprüfung: Fehler**  
**Alle Triggernamen in einer Datenbank müssen eindeutig sein.**  
Aufgrund von Änderungen in der Implementierung des Datenwörterbuchs unterstützt MySQL 8.0 in einer Datenbank keine Trigger, bei denen zwischen Groß- und Kleinschreibung unterschieden wird. Diese Vorabprüfung validiert, dass Ihr DB-Cluster keine Datenbanken mit doppelten Triggern enthält. Weitere Informationen finden Sie unter [Groß- und Kleinschreibung von Bezeichnern](https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "getDuplicateTriggers",
  "title": "MySQL pre-checks that all trigger names in a database are unique or not.",
  "status": "OK",
  "description": "Error: You have one or more database containing duplicate triggers. Mysql 8.0 does not support case sensitive triggers within a database https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html. To upgrade to MySQL 8.0, drop the triggers with case-insensitive duplicate names and recreate with distinct names.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test",
        "description": "before_insert_product"
      },
      {
        "level": "Error",
        "dbObject": "test",
        "description": "before_insert_PRODUCT"
      }
  ]
}
```
Bei der Vorabprüfung wird ein Fehler gemeldet, dass der Datenbank-Cluster zwei Trigger mit demselben Namen enthält, jedoch in unterschiedlicher Groß- und Kleinschreibung: `test.before_insert_product` und `test.before_insert_PRODUCT`.  
Benennen Sie die Trigger vor dem Upgrade um oder löschen Sie sie und erstellen Sie sie mit einem neuen Namen neu.  
Nach dem Umbenennen von `test.before_insert_PRODUCT` in `test.before_insert_product_2` ist die Vorabprüfung erfolgreich.  

```
{
  "id": "getDuplicateTriggers",
  "title": "MySQL pre-checks that all trigger names in a database are unique or not.",
  "status": "OK",
  "detectedProblems": []
}
```

**getEventsWithNullDefiner**  
**Stufe der Vorabprüfung: Fehler**  
**Die Definer-Spalte für `mysql.event` darf weder Null noch leer sein.**  
Das `DEFINER`-Attribut gibt das MySQL-Konto an, das Eigentümer einer gespeicherten Objektdefinition ist, z. B. eines Triggers, einer gespeicherten Prozedur oder eines Ereignisses. Dieses Attribut ist besonders nützlich in Situationen, in denen Sie den Sicherheitskontext kontrollieren möchten, in dem das gespeicherte Objekt ausgeführt wird. Wenn beim Erstellen eines gespeicherten Objekts kein `DEFINER` angegeben wird, wird standardmäßig der Benutzer verwendet, der das Objekt erstellt hat.  
Beim Upgrade auf MySQL 8.0 dürfen sich keine gespeicherten Objekte im MySQL-Datenwörterbuch befinden, die einen `null`- oder leeren Definer aufweisen. Wenn solche gespeicherten Objekte vorhanden sind, wird ein Fehler bei der Vorabprüfung ausgelöst. Sie müssen diesen beheben, bevor das Upgrade fortgesetzt werden kann.  
Fehlerbeispiel:  

```
{
  "id": "getEventsWithNullDefiner",
  "title": "The definer column for mysql.event cannot be null or blank.",
  "status": "OK",
  "description": "Error: Set definer column in mysql.event to a valid non-null definer.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.get_version",
        "description": "Set definer for event get_version in Schema test"
      }
  ]
}
```
Die Vorabprüfung gibt einen Fehler für das `test.get_version`-[Ereignis](https://dev.mysql.com/doc/refman/5.7/en/events-overview.html) zurück, da es einen `null`-Definer aufweist.  
Zum Beheben dieses Problems können Sie die Ereignisdefinition überprüfen. Wie Sie sehen können, ist der Definer `null` oder leer.  

```
mysql> select db,name,definer from mysql.event where name='get_version';
+------+-------------+---------+
| db   | name        | definer |
+------+-------------+---------+
| test | get_version |         |
+------+-------------+---------+
1 row in set (0.00 sec)
```
Löschen Sie das Ereignis oder erstellen Sie es mit einem gültigen Definer neu.  
Bevor Sie einen `DEFINER` löschen oder neu definieren, sollten Sie Ihre Anwendungs- und Berechtigungsanforderungen sorgfältig überprüfen. Weitere Informationen finden Sie unter [Zugriffssteuerung für gespeicherte Objekte](https://dev.mysql.com/doc/refman/5.7/en/stored-objects-security.html) in der MySQL-Dokumentation.

```
mysql> drop event test.get_version;
Query OK, 0 rows affected (0.00 sec)

mysql> DELIMITER ;
mysql> delimiter $$
mysql> CREATE EVENT get_version
    ->     ON SCHEDULE
    ->       EVERY 1 DAY
    ->     DO
    ->      ///DO SOMETHING //
    -> $$
Query OK, 0 rows affected (0.01 sec)

mysql> DELIMITER ;

mysql> select db,name,definer from mysql.event where name='get_version';
+------+-------------+------------+
| db   | name        | definer    |
+------+-------------+------------+
| test | get_version | reinvent@% |
+------+-------------+------------+
1 row in set (0.00 sec)
```
Die Vorabprüfung ist jetzt erfolgreich.  

```
{
  "id": "getEventsWithNullDefiner",
  "title": "The definer column for mysql.event cannot be null or blank.",
  "status": "OK",
  "detectedProblems": []},
```

**getMismatchedMetadata**  
**Stufe der Vorabprüfung: Fehler**  
**Nichtübereinstimmung von Spaltendefinitionen zwischen dem InnoDB-Datenwörterbuch und der tatsächlichen Tabellendefinition**  
Ähnlich wie [schemaInconsistencyCheck](#schemaInconsistencyCheck) stellt diese Vorabprüfung sicher, dass die Tabellenmetadaten in MySQL konsistent sind, bevor mit dem Upgrade fortgefahren wird. In diesem Fall stellt die Vorabprüfung sicher, dass die Spaltendefinitionen zwischen dem InnoDB-Datenwörterbuch und der MySQL-Tabellendefinition übereinstimmen. Wenn eine Nichtübereinstimmung festgestellt wird, wird das Upgrade nicht fortgesetzt.  
Wenn Sie bei dieser Vorabprüfung auf Fehler stoßen, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.  
**Beispielausgabe:**  

```
{
  "id": "getMismatchedMetadata",
  "title": "Column definition mismatch between InnoDB Data Dictionary and actual table definition.",
  "status": "OK",
  "description": "Error: Your database has mismatched metadata. The upgrade to mysql 8.0 will not succeed until this is fixed.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.mismatchTable",
        "description": "Table `test/mismatchTable` column names mismatch with InnoDb dictionary column names: iD <> id"
      }
  ]
}
```
Bei der Vorabprüfung wird eine Nichtübereinstimmung in den Metadaten für die Spalte `id` in der Tabelle `test.mismatchTable` gemeldet. Insbesondere führen die MySQL-Metadaten die Spalte als `iD`, InnoDB hingegen als `id`.

**getTriggersWithNullDefiner**  
**Stufe der Vorabprüfung: Fehler**  
**Die Definer-Spalte für `information_schema.triggers` darf nicht `null` oder leer sein.**  
Die Vorabprüfung validiert, dass Ihre Datenbank keine Trigger enthält, die mit `null`- oder leeren Definern definiert sind. Weitere Informationen zu den Definer-Anforderungen für gespeicherte Objekte finden Sie unter [getEventsWithNullDefiner](#getEventsWithNullDefiner).  
**Beispielausgabe:**  

```
{
  "id": "getTriggersWithNullDefiner",
  "title": "The definer column for information_schema.triggers cannot be null or blank.",
  "status": "OK",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.example_trigger",
        "description": "Set definer for trigger example_trigger in Schema test"
      }
  ]
}
```
Die Vorabprüfung gibt einen Fehler zurück, da der Trigger `example_trigger` im `test`-Schema über einen `null`-Definer verfügt. Zur Behebung dieses Problems sollte der Definer korrigiert werden, indem der Trigger mit einem gültigen Benutzer neu erstellt oder entfernt wird. Weitere Informationen finden Sie im Beispiel in [getEventsWithNullDefiner](#getEventsWithNullDefiner).  
Bevor Sie einen `DEFINER` löschen oder neu definieren, sollten Sie Ihre Anwendungs- und Berechtigungsanforderungen sorgfältig überprüfen. Weitere Informationen finden Sie unter [Zugriffssteuerung für gespeicherte Objekte](https://dev.mysql.com/doc/refman/5.7/en/stored-objects-security.html) in der MySQL-Dokumentation.

**getValueOfVariablelower\$1case\$1table\$1names**  
**Stufe der Vorabprüfung: Fehler**  
**Alle Datenbank- oder Tabellennamen dürfen nur Kleinbuchstaben enthalten, wenn der Parameter `lower_case_table_names` auf `1` gesetzt ist.**  
Vor MySQL 8.0 entsprachen Datenbanknamen, Tabellennamen und andere Objekte Dateien im Datenverzeichnis, wie z. B. dateibasierten Metadaten (.frm). Mit der Systemvariablen [lower\$1case\$1table\$1names](https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html) können Benutzer steuern, wie der Server die Groß- und Kleinschreibung von Bezeichnern bei Datenbankobjekten behandelt und wie solche Metadatenobjekte gespeichert werden. Dieser Parameter könnte auf einem bereits initialisierten Server nach einem Neustart geändert werden.  
In MySQL 8.0 steuert dieser Parameter zwar weiterhin, wie der Server die Groß- und Kleinschreibung von Bezeichnern behandelt, er kann jedoch nicht geändert werden, nachdem das Datenwörterbuch initialisiert wurde. Beim Upgrade oder der Erstellung einer MySQL-8.0-Datenbank wird der Wert, der für `lower_case_table_names` beim ersten Start des Datenwörterbuchs in MySQL festgelegt wird, für die gesamte Lebensdauer dieser Datenbank verwendet. Diese Einschränkung wurde im Rahmen der Implementierung des [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) eingeführt, bei der Datenbankobjekte von dateibasierten Metadaten zu internen InnoDB-Tabellen im `mysql`-Schema migriert werden.  
Weitere Informationen finden Sie unter [Änderungen am Datenwörterbuch](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-data-dictionary-changes) in der MySQL-Dokumentation.  
Um Probleme während dem Upgrade bei der Aktualisierung dateibasierter Metadaten auf das neue Atomic Data Dictionary zu vermeiden, validiert diese Vorabprüfung, dass bei `lower_case_table_names = 1` alle Tabellen in Kleinbuchstaben auf der Festplatte gespeichert sind. Wenn dies nicht der Fall ist, wird ein Fehler bei der Vorabprüfung zurückgegeben und Sie müssen die Metadaten korrigieren, bevor Sie mit dem Upgrade fortfahren können.  
**Beispielausgabe:**  

```
{
  "id": "getValueOfVariablelower_case_table_names",
  "title": "MySQL pre-checks that all database or table names are lowercase when the lower_case_table_names parameter is set to 1.",
  "status": "OK",
  "description": "Error: You have one or more databases or tables with uppercase letters in the names, but the lower_case_table_names parameter is set to 1. To upgrade to MySQL 8.0, either change all database or table names to lowercase, or set the parameter to 0.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.TEST",
        "description": "Table test.TEST contains one or more capital letters in name while lower_case_table_names = 1"
      }
  ]
}
```
Ein Fehler wird zurückgegeben, da die Tabelle `test.TEST` Großbuchstaben enthält, aber `lower_case_table_names` auf `1` gesetzt ist.  
Zum Beheben dieses Problems können Sie die Tabelle umbenennen, sodass Kleinbuchstaben verwendet werden, oder Sie können den Parameter `lower_case_table_names` im DB-Cluster ändern, bevor Sie mit dem Upgrade beginnen.  
Testen und lesen Sie die Dokumentation zur [Berücksichtigung der Groß-/Kleinschreibung](https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html) in MySQL sorgfältig und überprüfen Sie, wie sich solche Änderungen auf Ihre Anwendung auswirken könnten.  
Lesen Sie auch in der MySQL-8.0-Dokumentation nach, wie [lower\$1case\$1table\$1names](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names) in MySQL 8.0 unterschiedlich behandelt werden.

**groupByAscSyntaxCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Verwendung einer entfernten `GROUP BY ASC/DESC`-Syntax**  
Ab MySQL 8.0.13 wurde die veraltete `ASC`- oder `DESC`-Syntax für `GROUP BY`-Klauseln entfernt. Abfragen, die auf der `GROUP BY`-Sortierung basieren, können jetzt unterschiedliche Ergebnisse liefern. Um eine bestimmte Sortierreihenfolge zu erhalten, verwenden Sie stattdessen eine `ORDER BY`-Klausel. Wenn in Ihrer Datenbank Objekte existieren, die diese Syntax verwenden, müssen Sie sie mithilfe einer `ORDER BY`-Klausel neu erstellen, bevor Sie das Upgrade erneut versuchen. Weitere Informationen finden Sie unter [SQL-Änderungen](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-sql-changes) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "groupbyAscSyntaxCheck",
  "title": "Usage of removed GROUP BY ASC/DESC syntax",
  "status": "OK",
  "description": "Error: The following DB objects use removed GROUP BY ASC/DESC syntax. They need to be altered so that ASC/DESC keyword is removed from GROUP BY clause and placed in appropriate ORDER BY clause.",
  "documentationLink": "https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html#mysqld-8-0-13-sql-syntax",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.groupbyasc",
        "description": "PROCEDURE uses removed GROUP BY ASC syntax",
        "dbObjectType": "Routine"
      }
  ]
}
```

**mysqlEmptyDotTableSyntaxCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Suchen Sie nach veralteter `.<table>`-Syntax, die in Routinen verwendet wird.**  
In MySQL 8.0 dürfen Routinen keine veraltete Bezeichnersyntax (`\".<table>\"`) mehr enthalten. Wenn gespeicherte Routinen oder Trigger solche Bezeichner enthalten, schlägt das Upgrade fehl. Die folgende `.dot_table`-Referenz ist beispielsweise nicht mehr zulässig:  

```
mysql> show create procedure incorrect_procedure\G
*************************** 1. row ***************************
           Procedure: incorrect_procedure
            sql_mode:
    Create Procedure: CREATE DEFINER=`reinvent`@`%` PROCEDURE `incorrect_procedure`()
BEGIN delete FROM .dot_table; select * from .dot_table where 1=1; END
character_set_client: utf8mb4
collation_connection: utf8mb4_0900_ai_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Nachdem Sie die Routinen und Trigger neu erstellt haben, um die korrekte Bezeichnersyntax und das richtige Maskieren zu verwenden, ist die Vorabprüfung erfolgreich und das Upgrade kann fortgesetzt werden. Weitere Informationen finden Sie unter [Namen von Schemaobjekten](https://dev.mysql.com/doc/refman/8.0/en/identifiers.html) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "mysqlEmptyDotTableSyntaxCheck",
  "title": "Check for deprecated '.<table>' syntax used in routines.",
  "status": "OK",
  "description": "Error: The following routines contain identifiers in deprecated identifier syntax (\".<table>\"), and should be corrected before upgrade:\n",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.incorrect_procedure",
        "description": " routine body contains deprecated identifiers."
      }
  ]
}
```
Die Vorabprüfung gibt einen Fehler für die `incorrect_procedure`-Routine in der `test`-Datenbank zurück, da sie eine veraltete Syntax enthält.  
Nachdem Sie die Routine korrigiert haben, ist die Vorabprüfung erfolgreich und Sie können das Upgrade erneut versuchen.

**mysqlIndexTooLargeCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Indizes, die zu groß sind, um mit MySQL-Versionen höher als 5.7 zu funktionieren**  
Bei kompakten oder redundanten Zeilenformaten sollte es nicht möglich sein, einen Index mit einem Präfix von mehr als 767 Byte zu erstellen. Vor der MySQL-Version 5.7.35 war dies jedoch möglich. Weitere Informationen finden Sie unter [Versionshinweise für MySQL 5.7.35](https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-35.html).  
Auf alle Indizes, die von diesem Fehler betroffen waren, kann nach dem Upgrade auf MySQL 8.0 nicht mehr zugegriffen werden. Diese Vorabprüfung identifiziert fehlerhafte Indizes, die neu erstellt werden müssen, bevor das Upgrade fortgesetzt werden kann.  

```
 {
  "id": "mysqlIndexTooLargeCheck",
  "title": "Check for indexes that are too large to work on higher versions of MySQL Server than 5.7",
  "status": "OK",
  "description": "Error: The following indexes ware made too large for their format in an older version of MySQL (older than 5.7.34). Normally those indexes within tables with compact or redundant row formats shouldn't be larger than 767 bytes. To fix this problem those indexes should be dropped before upgrading or those tables will be inaccessible.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.table_with_large_idx",
        "description": "IDX_2"
      }
  ]
}
```
Die Vorabprüfung gibt einen Fehler zurück, da die Tabelle `test.table_with_large_idx` einen Index für eine Tabelle mit kompaktem oder redundantem Zeilenformat enthält, dessen Größe 767 Byte überschreitet. Auf diese Tabellen kann nach dem Upgrade auf MySQL 8.0 nicht mehr zugegriffen werden. Führen Sie einen der folgenden Schritte aus, bevor Sie mit dem Upgrade fortfahren:  
+ Löschen Sie den in der Vorabprüfung genannten Index.
+ Fügen Sie einen in der Vorabprüfung genannten Index hinzu.
+ Ändern Sie das von der Tabelle verwendete Zeilenformat.
Hier erstellen wir die Tabelle neu, um den Fehler bei der Vorabprüfung zu beheben. Vergewissern Sie sich vor dem Neuerstellen der Tabelle, dass [innodb\$1file\$1format](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_file_format) auf `Barracuda` und [innodb\$1default\$1row\$1format](https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_default_row_format) auf `dynamic` gesetzt ist. Dies sind die Standardwerte in MySQL 5.7. Weitere Informationen finden Sie unter [InnoDB-Zeilenformate](https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format.html) und [InnoDB-Dateiformatverwaltung](https://dev.mysql.com/doc/refman/5.7/en/innodb-file-format.html) in der MySQL-Dokumentation.  
Bevor Sie Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Online-DDL-Operationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.

```
mysql > select @@innodb_file_format,@@innodb_default_row_format;
+----------------------+-----------------------------+
| @@innodb_file_format | @@innodb_default_row_format |
+----------------------+-----------------------------+
| Barracuda            | dynamic                     |
+----------------------+-----------------------------+
1 row in set (0.00 sec)

mysql> optimize table table_with_large_idx;
+---------------------------+----------+----------+-------------------------------------------------------------------+
| Table                     | Op       | Msg_type | Msg_text                                                          |
+---------------------------+----------+----------+-------------------------------------------------------------------+
| test.table_with_large_idx | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| test.table_with_large_idx | optimize | status   | OK                                                                |
+---------------------------+----------+----------+-------------------------------------------------------------------+
2 rows in set (0.02 sec)

# Verify FILE_FORMAT and ROW_FORMAT
mysql>  select * from information_schema.innodb_sys_tables where name like 'test/table_with_large_idx';
+----------+---------------------------+------+--------+-------+-------------+------------+---------------+------------+
| TABLE_ID | NAME                      | FLAG | N_COLS | SPACE | FILE_FORMAT | ROW_FORMAT | ZIP_PAGE_SIZE | SPACE_TYPE |
+----------+---------------------------+------+--------+-------+-------------+------------+---------------+------------+
|       43 | test/table_with_large_idx |   33 |      4 |    26 | Barracuda   | Dynamic    |             0 | Single     |
+----------+---------------------------+------+--------+-------+-------------+------------+---------------+------------+
1 row in set (0.00 sec)
```
Nach dem Neuerstellen der Tabelle ist die Vorabprüfung erfolgreich und das Upgrade kann fortgesetzt werden.  

```
{
  "id": "mysqlIndexTooLargeCheck",
  "title": "Check for indexes that are too large to work on higher versions of MySQL Server than 5.7",
  "status": "OK",
  "detectedProblems": []
},
```

**mysqlInvalid57NamesCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf ungültige Tabellen- und Schemanamen, die in MySQL 5.7 verwendet wurden**  
Bei der Migration zum neuen Datenwörterbuch in MySQL 8.0 darf Ihre Datenbank-Instance keine Schemas oder Tabellen enthalten, die mit dem Präfix `#mysql50#` versehen sind. Wenn solche Objekte existieren, schlägt das Upgrade fehl. Führen Sie zum Beheben dieses Problems [mysqlcheck](https://dev.mysql.com/doc/refman/8.0/en/mysqlcheck.html) für die zurückgegebenen Schemas und Tabellen aus.  
Stellen Sie sicher, dass Sie eine [MySQL-5.7-Version](https://downloads.mysql.com/archives/community/) von `mysqlcheck` verwenden, da [--fix-db-names](https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html#option_mysqlcheck_fix-db-names) und [--fix-table-names](https://dev.mysql.com/doc/refman/5.7/en/mysqlcheck.html#option_mysqlcheck_fix-table-names) aus [MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html) entfernt wurden.
**Beispielausgabe:**  

```
{
  "id": "mysqlInvalid57NamesCheck",
  "title": "Check for invalid table names and schema names used in 5.7",
  "status": "OK",
  "description": "The following tables and/or schemas have invalid names. In order to fix them use the mysqlcheck utility as follows:\n\n  $ mysqlcheck --check-upgrade --all-databases\n  $ mysqlcheck --fix-db-names --fix-table-names --all-databases\n\nOR via mysql client, for eg:\n\n  ALTER DATABASE `#mysql50#lost+found` UPGRADE DATA DIRECTORY NAME;",
  "documentationLink": "https://dev.mysql.com/doc/refman/5.7/en/identifier-mapping.html https://dev.mysql.com/doc/refman/5.7/en/alter-database.html https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "#mysql50#fix_db_names",
        "description": "Schema name"
      }
  ]
}
```
Die Vorabprüfung meldet, dass das Schema `#mysql50#fix_db_names` einen ungültigen Namen hat.  
Nach der Korrektur des Schemanamens ist die Vorabprüfung erfolgreich, sodass das Upgrade fortgesetzt werden kann.  

```
{
  "id": "mysqlInvalid57NamesCheck",
  "title": "Check for invalid table names and schema names used in 5.7",
  "status": "OK",
  "detectedProblems": []
},
```

**mysqlOrphanedRoutinesCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf verwaiste Routinen in 5.7**  
Wenn bei der Migration zum neuen Datenwörterbuch in MySQL 8.0 gespeicherte Prozeduren in der Datenbank vorhanden sind, in denen das Schema nicht mehr existiert, schlägt das Upgrade fehl. Diese Vorabprüfung stellt sicher, dass alle Schemas, auf die in gespeicherten Prozeduren in Ihrer DB-Instance verwiesen wird, noch vorhanden sind. Löschen Sie diese gespeicherten Prozeduren, damit das Upgrade fortgesetzt werden kann.  
**Beispielausgabe:**  

```
{
  "id": "mysqlOrphanedRoutinesCheck",
  "title": "Check for orphaned routines in 5.7",
  "status": "OK",
  "description": "Error: The following routines have been orphaned. Schemas that they are referencing no longer exists.\nThey have to be cleaned up or the upgrade will fail.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "dropped_db.get_version",
        "description": "is orphaned"
      }
  ]
},
```
Die Vorabprüfung meldet, dass die gespeicherte Prozedur `get_version` in der `dropped_db`-Datenbank verwaist ist.  
Zur Bereinigung dieser Prozedur können Sie das fehlende Schema neu erstellen.  

```
mysql> create database dropped_db;
Query OK, 1 row affected (0.01 sec)
```
Nachdem das Schema neu erstellt wurde, können Sie die Prozedur löschen, damit das Upgrade fortgesetzt werden kann.  

```
{
  "id": "mysqlOrphanedRoutinesCheck",
  "title": "Check for orphaned routines in 5.7",
  "status": "OK",
  "detectedProblems": []
},
```

**mysqlSchemaCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Tabellennamen im `mysql`-Schema kollidieren mit neuen Tabellen in MySQL 8.0**  
Das neue [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html), das in MySQL 8.0 eingeführt wurde, speichert alle Metadaten in einer Reihe interner InnoDB-Tabellen im `mysql`-Schema. Während des Upgrades werden die neuen [internen Datenwörterbuchtabellen](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-schema.html) im `mysql`-Schema erstellt. Zur Vermeidung von Namenskonflikten, die zu Upgrade-Fehlern führen würden, untersucht die Vorabprüfung alle Tabellennamen im `mysql`-Schema, um sicherzustellen, dass keiner der neuen Tabellennamen bereits verwendet wird. Falls doch, wird ein Fehler zurückgegeben und das Upgrade kann nicht fortgesetzt werden.  
**Beispielausgabe:**  

```
{
  "id": "mysqlSchema",
  "title": "Table names in the mysql schema conflicting with new tables in the latest MySQL.",
  "status": "OK",
  "description": "Error: The following tables in mysql schema have names that will conflict with the ones introduced in the latest version. They must be renamed or removed before upgrading (use RENAME TABLE command). This may also entail changes to applications that use the affected tables.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrade-before-you-begin.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "mysql.tablespaces",
        "description": "Table name used in mysql schema.",
        "dbObjectType": "Table"
      }
  ]
}
```
Ein Fehler wird zurückgegeben, da im `mysql`-Schema bereits eine Tabelle mit dem Namen `tablespaces` existiert. Dies ist einer der neuen Tabellennamen für interne Datenwörterbücher in MySQL 8.0. Sie müssen solche Tabellen vor dem Upgrade mithilfe des Befehls `RENAME TABLE` umbenennen oder entfernen.

**nonNativePartitioningCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Partitionierte Tabellen mit Engines ohne nativer Partitionierung**  
Laut der [MySQL-8.0-Dokumentation](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html) bieten derzeit zwei Speicher-Engines native Partitionierungsunterstützung: [InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html) und [NDB](https://dev.mysql.com/doc/refman/8.0/en/mysql-cluster.html). Von diesen wird nur InnoDB in Aurora-MySQL-Version 3 unterstützt, kompatibel mit MySQL 8.0. Jeder Versuch, partitionierte Tabellen in MySQL 8.0 mit einer anderen Speicher-Engine zu erstellen, schlägt fehl. Diese Vorabprüfung sucht nach Tabellen in Ihrem DB-Cluster, die eine nicht-native Partitionierung verwenden. Wenn welche zurückgegeben werden, müssen Sie die Partitionierung entfernen oder die Speicher-Engine in InnoDB konvertieren.  
**Beispielausgabe:**  

```
{
  "id": "nonNativePartitioning",
  "title": "Partitioned tables using engines with non native partitioning",
  "status": "OK",
  "description": "Error: In the latest MySQL storage engine is responsible for providing its own partitioning handler, and the MySQL server no longer provides generic partitioning support. InnoDB and NDB are the only storage engines that provide a native partitioning handler that is supported in the latest MySQL. A partitioned table using any other storage engine must be altered—either to convert it to InnoDB or NDB, or to remove its partitioning—before upgrading the server, else it cannot be used afterwards.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-configuration-changes",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.partMyisamTable",
         "description": "MyISAM engine does not support native partitioning",
         "dbObjectType": "Table"
      }
  ]
}
```
Hier verwendet eine MyISAM-Tabelle Partitionierung, was eine Aktion erfordert, bevor das Upgrade fortgesetzt werden kann.

**oldTemporalCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Verwendung eines alten temporalen Typs**  
„Alte Temporale“ beziehen sich auf Spalten mit temporalen Typen (wie `TIMESTAMP` und`DATETIME`), die in MySQL-Versionen 5.5 und niedriger erstellt wurden. In MySQL 8.0 wurde die Unterstützung für diese alten temporalen Datentypen entfernt, was bedeutet, dass direkte Upgrades von MySQL 5.7 auf 8.0 nicht möglich sind, wenn die Datenbank diese alten temporalen Datentypen enthält. Zum Beheben dieses Problems müssen Sie alle Tabellen, die solche alten temporalen Datentypen enthalten, [neu erstellen](https://dev.mysql.com/doc/refman/5.7/en/rebuilding-tables.html), bevor Sie mit dem Upgrade fortfahren.  
Weitere Informationen zur Einstellung alter temporaler Datentypen in MySQL 5.7 finden Sie in diesem [Blog](https://dev.mysql.com/blog-archive/how-to-easily-identify-tables-with-temporal-types-in-old-format/). Weitere Informationen zur Entfernung alter temporaler Datentypen in MySQL 8.0 finden Sie in diesem [Blog](https://dev.mysql.com/blog-archive/mysql-8-0-removing-support-for-old-temporal-datatypes/).  
Bevor Sie Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Online-DDL-Operationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.
**Beispielausgabe:**  

```
{
  "id": "oldTemporalCheck",
  "title": "Usage of old temporal type",
  "status": "OK",
  "description": "Error: Following table columns use a deprecated and no longer supported temporal disk storage format. They must be converted to the new format before upgrading. It can by done by rebuilding the table using 'ALTER TABLE <table_name> FORCE' command",
  "documentationLink": "https://dev.mysql.com/blog-archive/mysql-8-0-removing-support-for-old-temporal-datatypes/",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.55_temporal_table.timestamp_column",
        "description": "timestamp /* 5.5 binary format */",
        "dbObjectType": "Column"
      }
  ]
},
```
Für die Spalte `timestamp_column` in der Tabelle `test.55_temporal_table` wird ein Fehler gemeldet, da sie ein altes temporales Festplattenspeicherformat verwendet, das nicht mehr unterstützt wird.  
Um dieses Problem zu beheben und das Upgrade fortsetzen zu können, erstellen Sie die Tabelle neu, um das alte temporale Festplattenspeicherformat in das neue Format zu konvertieren, das in MySQL 5.6 eingeführt wurde. Weitere Informationen und Voraussetzungen dafür finden Sie unter [Konvertierung zwischen 3-Byte- und 4-Byte-Unicode-Zeichensätzen](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-conversion.html) in der MySQL-Dokumentation.  
Wenn Sie den folgenden Befehl ausführen, um die in dieser Vorabprüfung genannten Tabellen neu zu erstellen, werden die alten temporalen Typen mit einer Genauigkeit von Sekundenbruchteilen in das neuere Format konvertiert.  

```
ALTER TABLE ... ENGINE=InnoDB;
```
Weitere Informationen finden Sie unter [ALTER-TABLE-Anweisung](https://dev.mysql.com/doc/refman/8.0/en/alter-table.html) in der MySQL-Dokumentation.  
Nachdem Sie die fragliche Tabelle neu erstellt und das Upgrade neu gestartet haben, ist die Kompatibilitätsprüfung erfolgreich, sodass das Upgrade fortgesetzt werden kann.  

```
{
  "id": "oldTemporalCheck",
  "title": "Usage of old temporal type",
  "status": "OK",
  "detectedProblems": []
}
```

**partitionedTablesInSharedTablespaceCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Verwendung partitionierter Tabellen in freigegebenen Tablespaces**  
Ab [MySQL 8.0.13](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html) wurde die Unterstützung für das Platzieren von Tabellenpartitionen in freigegebenen Tablespaces entfernt. Verschieben Sie vor dem Upgrade alle derartigen Tabellen von freigegebenen Tablespaces in Datei-pro-Tabelle-Tablespaces.  
Bevor Sie Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Partitionierungsoperationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html#online-ddl-partitioning) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.
**Beispielausgabe:**  

```
{
  "id": "partitionedTablesInSharedTablespaceCheck",
  "title": "Usage of partitioned tables in shared tablespaces",
  "status": "OK",
  "description": "Error: The following tables have partitions in shared tablespaces. They need to be moved to file-per-table tablespace before upgrading. You can do this by running query like 'ALTER TABLE table_name REORGANIZE PARTITION X INTO (PARTITION X VALUES LESS THAN (30) TABLESPACE=innodb_file_per_table);'",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.partInnoDBTable",
        "description": "Partition p1 is in shared tablespace innodb",
        "dbObjectType": "Table"
      }
  ]
}
```
Die Vorabprüfung schlägt fehl, weil sich die Partition `p1` aus der Tabelle `test.partInnoDBTable` im System-Tablespace befindet.  
Zum Beheben dieses Problems erstellen Sie die Tabelle `test.partInnodbTable` neu und platzieren die fehlerhafte Partition `p1` in einem Datei-pro-Tabelle-Tablespace.  

```
mysql > ALTER TABLE partInnodbTable REORGANIZE PARTITION p1
    ->   INTO (PARTITION p1 VALUES LESS THAN ('2014-01-01') TABLESPACE=innodb_file_per_table);
Query OK, 0 rows affected, 1 warning (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
```
Danach ist die Vorabprüfung erfolgreich.  

```
{
  "id": "partitionedTablesInSharedTablespaceCheck",
  "title": "Usage of partitioned tables in shared tablespaces",
  "status": "OK",
  "detectedProblems": []
}
```

**removedFunctionsCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Verwendung von Funktionen, die aus der neuesten MySQL-Version entfernt wurden**  
In MySQL 8.0 wurden eine Reihe von integrierten Funktionen entfernt. Bei dieser Vorabprüfung wird Ihre Datenbank auf Objekte untersucht, die diese Funktionen verwenden könnten. Wenn sie gefunden werden, wird ein Fehler zurückgegeben. Sie müssen die Probleme beheben, bevor Sie das Upgrade erneut versuchen können.  
Bei den meisten entfernten Funktionen handelt es sich um [Geofunktionen](https://dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html), die durch äquivalente `ST_*`-Funktionen ersetzt wurden. In diesen Fällen ändern Sie die Datenbankobjekte so, dass sie die neue Prozedurbenennung verwenden. Weitere Informationen finden Sie unter [In MySQL 8.0 entfernte Funktionen](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "removedFunctionsCheck",
  "title": "Usage of removed functions",
  "status": "OK",
  "description": "Error: The following DB objects use functions that were removed in the latest MySQL version. Please make sure to update them to use supported alternatives before upgrade.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.GetLocationsInPolygon",
        "description": "PROCEDURE uses removed function POLYGONFROMTEXT (consider using ST_POLYGONFROMTEXT instead)",
        "dbObjectType": "Routine"
      },
      {
        "level": "Error",
        "dbObject": "test.InsertLocation",
        "description": "PROCEDURE uses removed function POINTFROMTEXT (consider using ST_POINTFROMTEXT instead)",
        "dbObjectType": "Routine"
      }
  ]
},
```
Die Vorabprüfung meldet, dass die gespeicherte Prozedur `test.GetLocationsInPolygon` zwei entfernte Funktionen verwendet: [POLYGONFROMTEXT](https://dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html#function_polyfromtext) und [POINTFROMTEXT](https://dev.mysql.com/doc/refman/5.7/en/gis-wkt-functions.html#function_st-mpointfromtext). Außerdem wird empfohlen, die neuen [ST\$1POLYGONFROMTEXT](https://dev.mysql.com/doc/refman/8.0/en/gis-wkt-functions.html#function_st-polyfromtext) und [ST\$1POINTFROMTEXT](https://dev.mysql.com/doc/refman/8.0/en/gis-wkt-functions.html#function_st-mpointfromtext) als Ersatz zu verwenden. Nachdem Sie die Prozedur anhand der Vorschläge neu erstellt haben, wird die Vorabprüfung erfolgreich abgeschlossen.  

```
{
  "id": "removedFunctionsCheck",
  "title": "Usage of removed functions",
  "status": "OK",
  "detectedProblems": []
},
```
In den meisten Fällen werden die veralteten Funktionen zwar direkt ersetzt, Sie sollten jedoch sicherstellen, dass Sie Ihre Anwendung testen und die Dokumentation auf Verhaltensänderungen überprüfen, die sich aus der Änderung ergeben.

**routineSyntaxCheck**  
**Stufe der Vorabprüfung: Fehler**  
**MySQL-Syntaxprüfung für routinenähnliche Objekte**  
MySQL 8.0 hat [reservierte Schlüsselwörter](https://dev.mysql.com/doc/mysqld-version-reference/en/keywords-8-0.html#keywords-new-in-8-0) eingeführt, die zuvor nicht reserviert waren. Die Upgrade-Vorabprüfung wertet die Verwendung reservierter Schlüsselwörter in den Namen von Datenbankobjekten sowie in deren Definitionen und Körper aus. Wenn sie feststellt, dass reservierte Schlüsselwörter in Datenbankobjekten wie gespeicherten Prozeduren, Funktionen, Ereignissen und Triggern verwendet werden, schlägt das Upgrade fehl und ein Fehler wird in der Datei `upgrade-prechecks.log` veröffentlicht. Zum Beheben des Problems müssen Sie diese Objektdefinitionen aktualisieren und alle derartigen Referenzen vor dem Upgrade in einfache Anführungszeichen (') setzen. Weitere Informationen zum Maskieren reservierter Wörter in MySQL finden Sie unter [Zeichenfolgenliterale](https://dev.mysql.com/doc/refman/8.0/en/string-literals.html) in der MySQL-Dokumentation.  
Alternativ können Sie den Namen in einen anderen Namen ändern, was möglicherweise Änderungen an der Anwendung erforderlich macht.  
**Beispielausgabe:**  

```
{
  "id": "routineSyntaxCheck",
  "title": "MySQL syntax check for routine-like objects",
  "status": "OK",
  "description": "The following objects did not pass a syntax check with the latest MySQL grammar. A common reason is that they reference names that conflict with new reserved keywords. You must update these routine definitions and `quote` any such references before upgrading.",
  "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html",
  "detectedProblems": [
      {
         "level": "Error",
         "dbObject": "test.select_res_word",
         "description": "at line 2,18: unexpected token 'except'",
         "dbObjectType": "Routine"
      }
  ]
}
```
Zum Beheben dieses Problems überprüfen Sie die Routinedefinition.  

```
SHOW CREATE PROCEDURE test.select_res_word\G

*************************** 1. row ***************************
           Procedure: select_res_word
            sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Create Procedure: CREATE PROCEDURE 'select_res_word'()
BEGIN
    SELECT * FROM except;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Die Prozedur verwendet eine Tabelle mit dem Namen `except`, was ein neues Schlüsselwort in MySQL 8.0 ist. Erstellen Sie die Prozedur neu, indem Sie das Zeichenfolgenliteral maskieren.  

```
> drop procedure if exists select_res_word;
Query OK, 0 rows affected (0.00 sec)

> DELIMITER $$
 > CREATE PROCEDURE select_res_word()
    -> BEGIN
    ->     SELECT * FROM 'except';
    -> END$$
Query OK, 0 rows affected (0.00 sec)

 > DELIMITER ;
```
Die Vorabprüfung ist jetzt erfolgreich.  

```
{
  "id": "routineSyntaxCheck",
  "title": "MySQL syntax check for routine-like objects",
  "status": "OK",
  "detectedProblems": []
}
```

**schemaInconsistencyCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Schemainkonsistenzen, die auf das Entfernen oder die Beschädigung von Dateien zurückzuführen sind**  
Wie bereits beschrieben, wurde mit MySQL 8.0 das [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) eingeführt, das alle Metadaten in einer Reihe interner InnoDB-Tabellen im `mysql`-Schema speichert. Diese neue Architektur bietet eine transaktionale, [ACID](https://en.wikipedia.org/wiki/ACID)-konforme Methode zur Verwaltung von Datenbankmetadaten und löst damit das „atomare DDL“-Problem des alten dateibasierten Ansatzes. Vor MySQL 8.0 konnten Schemaobjekte verwaisen, wenn eine DDL-Operation unerwartet unterbrochen wurde. Durch die Migration von dateibasierten Metadaten zu den neuen Tabellen des Atomic Data Dictionary während des Upgrades wird sichergestellt, dass es in der DB-Instance keine solchen verwaisten Schemaobjekte gibt. Wenn verwaiste Objekte gefunden werden, schlägt das Upgrade fehl.  
Damit diese verwaisten Objekte vor dem Start des Upgrades leichter erkannt werden können, wird die Vorabprüfung `schemaInconsistencyCheck` durchgeführt, um sicherzustellen, dass alle Metadatenobjekte des Datenwörterbuchs synchron sind. Wenn verwaiste Metadatenobjekte erkannt werden, wird das Upgrade nicht fortgesetzt. Bereinigen Sie diese verwaisten Metadatenobjekte, um mit dem Upgrade fortzufahren.  
Wenn Sie bei dieser Vorabprüfung auf Fehler stoßen, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.  
**Beispielausgabe:**  

```
{
  "id": "schemaInconsistencyCheck",
  "title": "Schema inconsistencies resulting from file removal or corruption",
  "status": "OK",
  "description": "Error: Following tables show signs that either table datadir directory or frm file was removed/corrupted. Please check server logs, examine datadir to detect the issue and fix it before upgrade",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.schemaInconsistencyCheck_failure",
        "description": "present in INFORMATION_SCHEMA's INNODB_SYS_TABLES table but missing from TABLES table"
      }
  ]
}
```
Die Vorabprüfung meldet, dass die Tabelle `test.schemaInconsistencyCheck_failure` inkonsistente Metadaten enthält. In diesem Fall ist die Tabelle in den InnoDB-Speicher-Engine-Metadaten (`information_schema.INNODB_SYS_TABLES`) vorhanden, aber nicht in den MySQL-Metadaten (`information_schema.TABLES`).

### Aurora-MySQL-Vorabprüfungen, die Fehler melden
<a name="precheck-descriptions-errors.aurora"></a>

Die folgenden Vorabprüfungen sind spezifisch für Aurora MySQL:
+ [auroraCheckDDLRecovery](#auroraCheckDDLRecovery)
+ [auroraCheckRdsUpgradePrechecksTable](#auroraCheckRdsUpgradePrechecksTable)
+ [auroraFODUpgradeCheck](#auroraFODUpgradeCheck)
+ [auroraGetDanglingFulltextIndex](#auroraGetDanglingFulltextIndex)
+ [auroraUpgradeCheckForDatafilePathInconsistency](#auroraUpgradeCheckForDatafilePathInconsistency)
+ [auroraUpgradeCheckForFtsSpaceIdZero](#auroraUpgradeCheckForFtsSpaceIdZero)
+ [auroraUpgradeCheckForIncompleteXATransactions](#auroraUpgradeCheckForIncompleteXATransactions)
+ [auroraUpgradeCheckForInstanceLimit](#auroraUpgradeCheckForInstanceLimit)
+ [auroraUpgradeCheckForInternalUsers](#auroraUpgradeCheckForInternalUsers)
+ [auroraUpgradeCheckForInvalidUtf8mb3CharacterStringInViews](#auroraUpgradeCheckForInvalidUtf8mb3CharacterStringInViews)
+ [auroraUpgradeCheckForInvalidUtf8mb3ColumnComments](#auroraUpgradeCheckForInvalidUtf8mb3ColumnComments)
+ [auroraUpgradeCheckForInvalidUtf8mb3IndexComments](#auroraUpgradeCheckForInvalidUtf8mb3IndexComments)
+ [auroraUpgradeCheckForInvalidUtf8mb3TableComments](#auroraUpgradeCheckForInvalidUtf8mb3TableComments)
+ [auroraUpgradeCheckForMasterUser](#auroraUpgradeCheckForMasterUser)
+ [auroraUpgradeCheckForPrefixIndexOnGeometryColumns](#auroraUpgradeCheckForPrefixIndexOnGeometryColumns)
+ [auroraUpgradeCheckForSpecialCharactersInProcedures](#auroraUpgradeCheckForSpecialCharactersInProcedures)
+ [auroraUpgradeCheckForSysSchemaObjectTypeMismatch](#auroraUpgradeCheckForSysSchemaObjectTypeMismatch)
+ [auroraUpgradeCheckForViewColumnNameLength](#auroraUpgradeCheckForViewColumnNameLength)
+ [auroraUpgradeCheckIndexLengthLimitOnTinyColumns](#auroraUpgradeCheckIndexLengthLimitOnTinyColumns)
+ [auroraUpgradeCheckMissingInnodbMetadataForMysqlHostTable](#auroraUpgradeCheckMissingInnodbMetadataForMysqlHostTable)

**auroraCheckDDLRecovery**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Artefakte im Zusammenhang mit der Aurora-Funktion für die DDL-Wiederherstellung**  
Im Rahmen der Wiederherstellungsimplementierung der Data Definition Language (DDL) in Aurora MySQL werden Metadaten zu Inflight-DDL-Anweisungen in den Tabellen `ddl_log_md_table` und `ddl_log_table` im `mysql`-Schema verwaltet. Auroras Implementierung der DDL-Wiederherstellung wird ab Version 3 nicht unterstützt, da die Funktionalität Teil der neuen Implementierung des [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) in MySQL 8.0 ist. Wenn während der Kompatibilitätsprüfungen DDL-Anweisungen ausgeführt werden, schlägt diese Vorabprüfung möglicherweise fehl. Wir empfehlen, das Upgrade auszuprobieren, während keine DDL-Anweisungen ausgeführt werden.  
Wenn diese Vorabprüfung fehlschlägt, ohne dass DDL-Anweisungen ausgeführt werden, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.  
Wenn DDL-Anweisungen ausgeführt werden, zeigt die Ausgabe der Vorabprüfung folgende Meldung an:  

```
“There are DDL statements in process. Please allow DDL statements to finish before upgrading.”
```
**Beispielausgabe:**  

```
{
  "id": "auroraCheckDDLRecovery",
  "title": "Check for artifacts related to Aurora DDL recovery feature",
  "status": "OK",
  "description": "Aurora implementation of DDL recovery is not supported from 3.x onwards. This check verifies that the database do not have artifacts realted to the feature",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "mysql.ddl_log_md_table",
        "description": "Table mysql.ddl_log_md_table is not empty. Your database has pending DDL recovery operations. Reachout to AWS support for assistance."
      },
      {
        "level": "Error",
        "dbObject": "mysql.ddl_log_table",
        "description": "Table mysql.ddl_log_table is not empty. Your database has pending DDL recovery operations. Reachout to AWS support for assistance."
      },
      {
        "level": "Error",
        "dbObject": "information_schema.processlist",
        "description": "There are DDL statements in process. Please allow DDL statements to finish before upgrading."
      }
  ]
}
```
Die Vorabprüfung hat einen Fehler zurückgegeben, da eine Inflight-DDL gleichzeitig mit den Kompatibilitätsprüfungen ausgeführt wurde. Wir empfehlen, dass Sie das Upgrade erneut versuchen, ohne dass DDLs ausgeführt werden.

**auroraCheckRdsUpgradePrechecksTable**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen der Existenz der Tabelle `mysql.rds_upgrade_prechecks`**  
Dies ist eine rein interne Vorabprüfung, die vom RDS-Service durchgeführt wird. Alle Fehler werden beim Upgrade automatisch behandelt und können problemlos ignoriert werden.  
Wenn Sie bei dieser Vorabprüfung auf Fehler stoßen, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.  

```
{
  "id": "auroraCheckRdsUpgradePrechecksTable",
  "title": "Check existence of mysql.rds_upgrade_prechecks table",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraFODUpgradeCheck**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Artefakte im Zusammenhang mit der Aurora-Funktion für schnelle DDL**  
Die Optimierung für [schnelle DDL](AuroraMySQL.Managing.FastDDL.md) wurde im [Labormodus](AuroraMySQL.Updates.LabMode.md) für Aurora-MySQL-Version 2 eingeführt, um die Effizienz einiger DDL-Operationen zu verbessern. In Aurora-MySQL-Version 3 wurde der Labormodus entfernt und die Implementierung schneller DDL wurde durch die MySQL-8.0-Funktion namens [Sofortige DDL](https://dev.mysql.com/doc/refman/8.4/en/innodb-online-ddl-operations.html) ersetzt.  
Vor dem Upgrade auf Aurora-MySQL-Version 3 müssen alle Tabellen, die schnelle DDL im Labormodus verwenden, neu erstellt werden, indem der Befehl `OPTIMIZE TABLE` oder `ALTER TABLE ... ENGINE=InnoDB` ausgeführt wird, um die Kompatibilität mit Aurora-MySQL-Version 3 sicherzustellen.  
Diese Vorabprüfung gibt eine Liste solcher Tabellen zurück. Nachdem die zurückgegebenen Tabellen neu erstellt wurden, können Sie das Upgrade erneut versuchen.  
**Beispielausgabe:**  

```
{
  "id": "auroraFODUpgradeCheck",
  "title": "Check for artifacts related to Aurora fast DDL feature",
  "status": "OK",
  "description": "Aurora fast DDL is not supported from 3.x onwards. This check verifies that the database does not have artifacts related to the feature",
  "documentationLink": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.FastDDL.html#AuroraMySQL.Managing.FastDDL-v2",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.test",
        "description": "Your table has pending Aurora fast DDL operations. Run 'OPTIMIZE TABLE <table name>' for the table to apply all the pending DDL updates. Then try the upgrade again."
      }
  ]
}
```
Die Vorabprüfung meldet, dass in der Tabelle `test.test` ausstehende Operationen für schnelle DDL vorhanden sind.  
Damit das Upgrade fortgesetzt werden kann, können Sie die Tabelle neu erstellen und dann das Upgrade erneut versuchen.  
Bevor Sie Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Online-DDL-Operationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.

```
mysql> optimize table test.test;
+-----------+----------+----------+-------------------------------------------------------------------+
| Table     | Op       | Msg_type | Msg_text                                                          |
+-----------+----------+----------+-------------------------------------------------------------------+
| test.test | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| test.test | optimize | status   | OK                                                                |
+-----------+----------+----------+-------------------------------------------------------------------+
2 rows in set (0.04 sec)
```
Nach dem Neuerstellen der Tabelle ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraFODUpgradeCheck",
  "title": "Check for artifacts related to Aurora fast DDL feature",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraGetDanglingFulltextIndex**  
**Stufe der Vorabprüfung: Fehler**  
**Tabellen mit hängender `FULLTEXT`-Indexreferenz**  
Vor MySQL 5.6.26 war es möglich, dass die versteckten Spalten `FTS_DOC_ID` und `FTS_DOC_ID_INDEX` nach dem Löschen eines Volltextsuchindex verwaisen würden. Weitere Informationen finden Sie unter [Fehler \$176012](https://bugs.mysql.com/bug.php?id=76012).  
Wenn Sie Tabellen haben, die in früheren Versionen von MySQL erstellt wurden, bei denen dies aufgetreten ist, kann dies dazu führen, dass Upgrades auf Aurora-MySQL-Version 3 fehlschlagen. Diese Vorabprüfung stellt vor dem Upgrade auf MySQL 8.0 sicher, dass in Ihrem DB-Cluster keine solchen verwaisten oder „hängenden“ Volltextindizes existieren. Wenn diese Vorabprüfung fehlschlägt, erstellen Sie alle Tabellen neu, die solche hängenden Volltextindizes enthalten.  
**Beispielausgabe:**  

```
{
  "id": "auroraGetDanglingFulltextIndex",
  "title": "Tables with dangling FULLTEXT index reference",
  "status": "OK",
  "description": "Error: The following tables contain dangling FULLTEXT index which is not supported. It is recommended to rebuild the table before upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.table_with_fts_index",
        "description": "Table `test.table_with_fts_index` contains dangling FULLTEXT index. Kindly recreate the table before upgrade."
      }
  ]
},
```
Die Vorabprüfung meldet einen Fehler für die Tabelle `test.table_with_fts_index`, da sie einen hängenden Volltextindex enthält. Damit das Upgrade fortgesetzt werden kann, müssen Sie die Tabelle neu erstellen, um die Hilfstabellen für den Volltextindex zu bereinigen. Verwenden Sie `OPTIMIZE TABLE test.table_with_fts_index` oder `ALTER TABLE test.table_with_fts_index, ENGINE=INNODB`.  
Nach dem Neuerstellen der Tabelle ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraGetDanglingFulltextIndex",
  "title": "Tables with dangling FULLTEXT index reference",
  "status": "OK",
  "detectedProblems": []
},
```

**auroraUpgradeCheckForDatafilePathInconsistency**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Inkonsistenzen im Zusammenhang mit dem `ibd`-Dateipfad**  
Diese Vorabprüfung gilt nur für Aurora-MySQL-Version 3.03.0 und niedriger. Wenn Sie bei dieser Vorabprüfung auf einen Fehler stoßen, versuchen Sie ein Upgrade auf Aurora-MySQL-Version 3.04 oder höher.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForDatafilePathInconsistency",
  "title": "Check for inconsistency related to ibd file path.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForFtsSpaceIdZero**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf einen Volltextindex mit der Space-ID als Null**  
Wenn Sie in MySQL einer InnoDB-Tabelle einen [Volltextindex](https://dev.mysql.com/doc/refman/5.7/en/innodb-fulltext-index.html) hinzufügen, werden eine Reihe von zusätzlichen Index-Tablespaces erstellt. Aufgrund eines [Fehlers](https://bugs.mysql.com/bug.php?id=72132) in früheren Versionen von MySQL, der in Version 5.6.20 behoben wurde, war es möglich, dass diese zusätzlichen Indextabellen im [System-Tablespace](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_system_tablespace) und nicht in ihrem eigenen InnoDB-Tablespace erstellt wurden.  
Wenn solche zusätzlichen Tablespaces existieren, schlägt das Upgrade fehl. Erstellen Sie die im Fehler bei der Vorabprüfung genannten Volltextindizes neu und versuchen Sie dann das Upgrade erneut.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForFtsSpaceIdZero",
  "title": "Check for fulltext index with space id as zero",
  "status": "OK",
  "description": "The auxiliary tables of FTS indexes on the table are created in system table-space. Due to this DDL queries executed on MySQL8.0 shall cause database unavailability. To avoid that, drop and recreate all the FTS indexes on the table or rebuild the table using ALTER TABLE query before the upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.fts_space_zero_check",
        "description": " The auxiliary tables of FTS indexes on the table 'test.fts_space_zero_check' are created in system table-space due to https://bugs.mysql.com/bug.php?id=72132. In MySQL8.0, DDL queries executed on this table shall cause database unavailability. To avoid that, drop and recreate all the FTS indexes on the table or rebuild the table using ALTER TABLE query before the upgrade."
      }
  ]
},
```
Die Vorabprüfung meldet einen Fehler für die Tabelle `test.fts_space_zero_check`, da sie zusätzliche Tabellen für Volltextsuchen (Full-Text Search, FTS) im System-Tablespace enthält.  
Nachdem Sie die mit dieser Tabelle verknüpften FTS-Indizes gelöscht und neu erstellt haben, ist die Vorabprüfung erfolgreich.  
Bevor Sie Tablespaces neu erstellen, finden Sie in der MySQL-Dokumentation unter [Partitionierungsoperationen](https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html#online-ddl-partitioning) Informationen zu den Auswirkungen von Sperren und Datenverschiebungen auf Vordergrundtransaktionen.

```
{
 "id": "auroraUpgradeCheckForFtsSpaceIdZero",
 "title": "Check for fulltext index with space id as zero",
 "status": "OK",
 "detectedProblems": []
}
```

**auroraUpgradeCheckForIncompleteXATransactions**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf XA-Transaktionen im vorbereiteten Zustand**  
Während des Upgrade-Prozesses für die Hauptversion ist es wichtig, dass die DB-Instance von Aurora-MySQL-Version 2 [ordnungsgemäß heruntergefahren](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_slow_shutdown) wird. Dadurch wird sichergestellt, dass alle Transaktionen festgeschrieben oder rückgängig gemacht werden und dass InnoDB alle Undo-Protokolleinträge bereinigt hat. Da ein Transaktions-Rollback notwendig ist, kann das ordnungsgemäße Herunterfahren blockiert werden, wenn Ihre Datenbank [XA-Transaktionen](https://dev.mysql.com/doc/refman/5.7/en/xa.html) im vorbereiteten Zustand enthält. Aus diesem Grund kann das Upgrade nicht fortgesetzt werden, wenn vorbereitete XA-Transaktionen erkannt werden, bis Sie Maßnahmen ergreifen, um sie entweder festzuschreiben oder rückgängig zu machen.  
Weitere Informationen zum Auffinden von XA-Transaktionen im vorbereiteten Zustand mithilfe von `XA RECOVER` finden Sie unter [XA-Transaktions-SQL-Anweisungen](https://dev.mysql.com/doc/refman/5.7/en/xa-statements.html) in der MySQL-Dokumentation. Weitere Informationen zu XA-Transaktionszuständen finden Sie unter [XA-Transaktionszustände](https://dev.mysql.com/doc/refman/5.7/en/xa-states.html) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForIncompleteXATransactions",
  "title": "Pre-checks for XA Transactions in prepared state.",
  "status": "OK",
  "description": "Your cluster currently has XA transactions in the prepared state. To proceed with the upgrade, commit or rollback these transactions.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "all",
        "description": "Your cluster currently has XA transactions in the prepared state. To proceed with the upgrade, commit or rollback these transactions."
      }
  ]
}
```
Diese Vorabprüfung meldet einen Fehler, da sich Transaktionen im vorbereiteten Zustand befinden, die entweder festgeschrieben oder rückgängig gemacht werden sollten.  
Nachdem Sie sich bei der Datenbank angemeldet haben, können Sie in der Tabelle [information\$1schema.innodb\$1trx](https://dev.mysql.com/doc/refman/5.7/en/information-schema-innodb-trx-table.html) und in der `XA RECOVER`-Ausgabe nach weiteren Informationen suchen.  
Bevor Sie eine Transaktion festschreiben oder rückgängig machen, empfehlen wir Ihnen, die [MySQL-Dokumentation](https://dev.mysql.com/doc/refman/5.7/en/xa-restrictions.html) und Ihre Anwendungsanforderungen zu lesen.

```
mysql> select trx_started,
    trx_mysql_thread_id,
    trx_id,trx_state,
    trx_operation_state,
    trx_rows_modified,
    trx_rows_locked 
from 
    information_schema.innodb_trx;
+---------------------+---------------------+---------+-----------+---------------------+-------------------+-----------------+
| trx_started         | trx_mysql_thread_id | trx_id  | trx_state | trx_operation_state | trx_rows_modified | trx_rows_locked |
+---------------------+---------------------+---------+-----------+---------------------+-------------------+-----------------+
| 2024-08-12 01:09:39 |                   0 | 2849470 | RUNNING   | NULL                |                 1 |               0 |
+---------------------+---------------------+---------+-----------+---------------------+-------------------+-----------------+
1 row in set (0.00 sec)

mysql> xa recover;
+----------+--------------+--------------+--------+
| formatID | gtrid_length | bqual_length | data   |
+----------+--------------+--------------+--------+
|        1 |            6 |            0 | xatest |
+----------+--------------+--------------+--------+
1 row in set (0.00 sec)
```
In diesem Fall machen wir die vorbereitete Transaktion rückgängig.  

```
mysql> XA ROLLBACK 'xatest';
Query OK, 0 rows affected (0.00 sec)
v
mysql> xa recover;
Empty set (0.00 sec)
```
Nachdem die XA-Transaktion rückgängig gemacht wurde, ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraUpgradeCheckForIncompleteXATransactions",
  "title": "Pre-checks for XA Transactions in prepared state.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForInstanceLimit**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen, ob das Upgrade für die aktuelle Instance-Klasse unterstützt wird**  
Die Ausführung eines direkten Upgrades von Aurora-MySQL-Version 2.12.0 oder 2.12.1, bei der die Schreiber-[DB-Instance-Klasse](Concepts.DBInstanceClass.md) db.r6i.32xlarge ist, wird derzeit nicht unterstützt. In diesem Fall gibt die Vorabprüfung einen Fehler zurück. Damit das Upgrade fortgesetzt werden kann, können Sie Ihre DB-Instance-Klasse entweder in db.r6i.24xlarge oder kleiner ändern. Oder Sie können ein Upgrade auf Aurora-MySQL-Version 2.12.2 oder höher durchführen, wobei das direkte Upgrade auf Aurora-MySQL-Version 3 auf db.r6i.32xlarge unterstützt wird.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForInstanceLimit",
  "title": "Checks if upgrade is supported on the current instance class",
  "status": "OK",
  "description": "Upgrade from Aurora Version 2.12.0 and 2.12.1 may fail for 32.xl and above instance class.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "all",
        "description": "Upgrade is not supported on this instance size for Aurora MySql Version 2.12.1. Before upgrading to Aurora MySql 3, please consider either: 1. Changing the instance class to 24.xl or lower. -or- 2. Upgrading to patch version 2.12.2 or higher."
      }
  ]
},
```
Die Vorabprüfung gibt einen Fehler zurück, da die Schreiber-DB-Instance die Instance-Klasse db.r6i.32xlarge verwendet und auf Aurora-MySQL-Version 2.12.1 läuft.

**auroraUpgradeCheckForInternalUsers**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf interne Benutzer von Version 8.0**  
Diese Vorabprüfung gilt nur für Aurora-MySQL-Version 3.03.0 und niedriger. Wenn Sie bei dieser Vorabprüfung auf einen Fehler stoßen, versuchen Sie ein Upgrade auf Aurora-MySQL-Version 3.04 oder höher.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForInternalUsers",
  "title": "Check for 8.0 internal users.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForInvalidUtf8mb3CharacterStringInViews**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf ungültige utf8mb3-Zeichen in einer Ansichtsdefinition**  
Diese Vorabprüfung identifiziert Ansichten, die Kommentare mit ungültiger `utf8mb3`-Zeichenkodierung enthalten. In MySQL 8.0 wird eine strengere Validierung auf die Zeichenkodierung in Metadaten angewendet, einschließlich Ansichtskommentaren. Wenn eine Ansichtsdefinition Zeichen enthält, die im `utf8mb3`-Zeichensatz nicht gültig sind, schlägt das Upgrade fehl.  
Zum Beheben dieses Problems ändern Sie die Ansichtsdefinition so, dass alle Nicht-BMP-Zeichen entfernt oder ersetzt werden, bevor Sie versuchen, das Upgrade durchzuführen.  
**Beispielausgabe:**  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3CharacterStringInViews",
"title": "Check for invalid utf8mb3 character string.",
"status": "OK",
"description": "Definition of following view(s) has/have invalid utf8mb3 character string.",
"detectedProblems": [
        {
            "level": "Error",
            "dbObject": "precheck.utf8mb3_invalid_char_view",
            "description": "Definition of view precheck.utf8mb3_invalid_char_view contains an invalid utf8mb3 character string. This is due to https://bugs.mysql.com/bug.php?id=110177. To fix the inconsistency, we recommend you to modify the view definition to not use non-BMP characters and try the upgrade again."
        }
    ]
},
```
Die Vorabprüfung meldet, dass die Definition der Ansichtsdefinition `utf8mb3_invalid_char_view` ungültige `utf8mb3`-Zeichen enthält.  
Zum Beheben dieses Problems identifizieren Sie die Ansicht, die die nicht unterstützten Zeichen enthält, und aktualisieren die Kommentare. Untersuchen Sie zunächst die Struktur der Ansicht und identifizieren Sie Kommentare.  

```
MySQL> SHOW CREATE VIEW precheck.utf8mb3_invalid_char_view\G
*************************** 1. row ***************************
                View: utf8mb3_invalid_char_view
        Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`admin`@`%` SQL SECURITY DEFINER VIEW `utf8mb3_invalid_char_view` AS select 'This row contains a dolphin 🐬' AS `message`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set, 1 warning (0.00 sec)
```
Sobald Sie die Ansicht identifiziert haben, die den Fehler enthält, ersetzen Sie sie mithilfe der `CREATE OR REPLACE VIEW`-Anweisung.  

```
MySQL> CREATE OR REPLACE VIEW precheck.utf8mb3_invalid_char_view AS select 'This view definition to not use non-BMP characters' AS message;
```
Nach der Aktualisierung aller Ansichtsdefinitionen, die nicht unterstützte Zeichen enthalten, ist die Vorabprüfung erfolgreich und das Upgrade kann fortgesetzt werden.  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3ColumnComments",
"title": "Check for invalid utf8mb3 column comments.",
"status": "OK",
"detectedProblems": []
}
```

**auroraUpgradeCheckForInvalidUtf8mb3ColumnComments**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf ungültige utf8mb3-Spaltenkommentare**  
Diese Vorabprüfung identifiziert Tabellen, die Spaltenkommentare mit ungültiger `utf8mb3`-Zeichenkodierung enthalten. In MySQL 8.0 wird eine strengere Validierung auf die Zeichenkodierung in Metadaten angewendet, einschließlich Spaltenkommentaren. Wenn Spaltenkommentare Zeichen enthalten, die im utf8mb3-Zeichensatz nicht gültig sind, schlägt das Upgrade fehl.  
Zum Beheben dieses Problems müssen Sie die Spaltenkommentare ändern, um alle Nicht-BMP-Zeichen zu entfernen oder zu ersetzen, bevor Sie das Upgrade durchführen. Sie können die `ALTER TABLE`-Anweisung verwenden, um die Spaltenkommentare zu aktualisieren.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForInvalidUtf8mb3ColumnComments",
  "title": "Check for invalid utf8mb3 column comments.",
  "status": "OK",
  "description": "Following table(s) has/have invalid utf8mb3 comments on the column/columns.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.t2",
        "description": "Table test.t2 has invalid utf8mb3 comments in it's column/columns. This is due to non-BMP characters in the comment field. To fix the inconsistency, we recommend you to modify comment fields to not use non-BMP characters and try the upgrade again."
      }
  ]
}
```
Die Vorabprüfung meldet, dass die Tabelle `test.t2` ungültige `utf8mb3`-Zeichen in einem oder mehreren Spaltenkommentaren enthält, insbesondere aufgrund des Vorhandenseins von Nicht-BMP-Zeichen.  
Zum Beheben dieses Problems können Sie die problematischen Spalten identifizieren und ihre Kommentare aktualisieren. Untersuchen Sie zunächst die Tabellenstruktur, um Spalten mit Kommentaren zu identifizieren:  

```
mysql> SHOW CREATE TABLE test.t2\G
```
Sobald Sie die Spalten mit problematischen Kommentaren identifiziert haben, aktualisieren Sie sie mithilfe der `ALTER TABLE`-Anweisung. Zum Beispiel:  

```
mysql> ALTER TABLE test.t2 MODIFY COLUMN column_name data_type COMMENT 'Updated comment without non-BMP characters';
```
Alternativ können Sie den Kommentar auch vollständig entfernen:  

```
mysql> ALTER TABLE test.t2 MODIFY COLUMN column_name data_type COMMENT '';
```
Nach der Aktualisierung aller problematischen Spaltenkommentare ist die Vorabprüfung erfolgreich und das Upgrade kann fortgesetzt werden:  

```
{
  "id": "auroraUpgradeCheckForInvalidUtf8mb3ColumnComments",
  "title": "Check for invalid utf8mb3 column comments.",
  "status": "OK",
  "detectedProblems": []
}
```
Stellen Sie vor dem Ändern von Spaltenkommentaren sicher, dass Anwendungscodes oder Dokumentationen, die von diesen Kommentaren abhängen, entsprechend aktualisiert werden. Erwägen Sie für eine bessere Unicode-Unterstützung eine Migration zum utf8mb4-Zeichensatz, falls Ihre Anwendung Nicht-BMP-Zeichen benötigt.

**auroraUpgradeCheckForInvalidUtf8mb3IndexComments**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf ungültige utf8mb3-Indexkommentare**  
Diese Vorabprüfung identifiziert Tabellen, die Indexkommentare mit ungültiger `utf8mb3`-Zeichenkodierung enthalten. In MySQL 8.0 wird eine strengere Validierung auf die Zeichenkodierung in Metadaten angewendet, einschließlich Indexkommentaren. Wenn ein Indexkommentar Zeichen enthält, die im `utf8mb3`-Zeichensatz nicht gültig sind, schlägt das Upgrade fehl.  
Zum Beheben dieses Problems müssen Sie die Indexkommentare ändern, um alle Nicht-BMP-Zeichen zu entfernen oder zu ersetzen, bevor Sie das Upgrade durchführen.  
**Beispielausgabe:**  

```
{
    "id": "auroraUpgradeCheckForInvalidUtf8mb3IndexComments",
    "title": "Check for invalid utf8mb3 index comments.",
    "status": "OK",
    "description": "Following table(s) has/have invalid utf8mb3 comments on the index.",
    "detectedProblems": [
        {
            "level": "Error",
            "dbObject": "precheck.utf8mb3_tab_index_comment",
            "description": "Table precheck.utf8mb3_tab_index_comment has invalid utf8mb3 comments in it's index. This is due to https://bugs.mysql.com/bug.php?id=110177. To fix the inconsistency, we recommend you to modify comment fields to not use non-BMP characters and try the upgrade again."
        }
    ]
},
```
Die Vorabprüfung meldet, dass die Tabelle `utf8mb3_tab_index_comment` ungültige `utf8mb3`-Zeichen in einem oder mehreren Spaltenkommentaren enthält, insbesondere aufgrund des Vorhandenseins von Nicht-BMP-Zeichen.  
Zum Beheben dieses Problems untersuchen Sie zunächst die Tabellenstruktur, um den Index mit problematischen Kommentaren zu identifizieren.  

```
MySQL> SHOW CREATE TABLE precheck.utf8mb3_tab_index_comment\G
*************************** 1. row ***************************
    Table: utf8mb3_tab_index_comment
Create Table: CREATE TABLE `utf8mb3_tab_index_comment` (
`id` int(11) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
KEY `idx_name` (`name`) COMMENT 'Name index 🐬'
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)
```
Sobald Sie den Index identifiziert haben, der Kommentare enthält, die nicht unterstützte Zeichen verwenden, löschen Sie den Index und erstellen Sie ihn neu.  
Das Löschen und Neuerstellen eines Tabellenindexes kann zu Ausfallzeiten führen. Wir empfehlen, diesen Vorgang während der Wartung zu planen und durchzuführen.

```
MySQL> ALTER TABLE precheck.utf8mb3_tab_index_comment DROP INDEX idx_name;
MySQL> ALTER TABLE precheck.utf8mb3_tab_index_comment ADD INDEX idx_name(name);
```
Das folgende Beispiel zeigt eine andere Möglichkeit, den Index neu zu erstellen.  

```
MySQL> ALTER TABLE utf8mb3_tab_index_comment DROP INDEX idx_name, ADD INDEX idx_name (name) COMMENT 'Updated comment without non-BMP characters';
```
Nachdem Sie alle nicht unterstützten Indexkommentare entfernt oder aktualisiert haben, ist die Vorabprüfung erfolgreich und das Upgrade kann fortgesetzt werden.  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3IndexComments",
"title": "Check for invalid utf8mb3 index comments.",
"status": "OK",
"detectedProblems": []
},
```

**auroraUpgradeCheckForInvalidUtf8mb3TableComments**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf ungültige utf8mb3-Zeichen in einer Tabellendefinition**  
Diese Vorabprüfung identifiziert Tabellen, die Kommentare mit ungültiger `utf8mb3`-Zeichenkodierung enthalten. In MySQL 8.0 wird eine strengere Validierung auf die Zeichenkodierung in Metadaten angewendet, einschließlich Tabellenkommentaren. Wenn ein Tabellenkommentar Zeichen enthält, die im `utf8mb3`-Zeichensatz nicht gültig sind, schlägt das Upgrade fehl.  
Zum Beheben dieses Problems müssen Sie die Tabellenkommentare ändern, um alle Nicht-BMP-Zeichen zu entfernen oder zu ersetzen, bevor Sie das Upgrade durchführen.  
**Beispielausgabe:**  

```
{
    "id": "auroraUpgradeCheckForInvalidUtf8mb3TableComments",
    "title": "Check for invalid utf8mb3 table comments.",
    "status": "OK",
    "description": "Following table(s) has/have invalid utf8mb3 comments.",
    "detectedProblems": [
        {
            "level": "Error",
            "dbObject": "precheck.utf8mb3_table_with_comment",
            "description": "Table precheck.utf8mb3_table_with_comment has invalid utf8mb3 comments. This is due to https://bugs.mysql.com/bug.php?id=110177. To fix the inconsistency, we recommend you to modify comment fields to not use non-BMP characters and try the upgrade again."
        }
        
    ]
},
```
Die Vorabprüfung meldet ungültige `utf8mb3`-Kommentare, die für die `utf8mb3_table_with_comment`-Tabellen in der Testdatenbank definiert wurden.  
Zum Beheben dieses Problems identifizieren Sie die Tabelle, die nicht unterstützte Zeichen enthält, und aktualisieren die Kommentare. Untersuchen Sie zunächst die Struktur der Tabelle und identifizieren Sie die Kommentare.  

```
MySQL> SHOW CREATE TABLE precheck.utf8mb3_table_with_comment\G
*************************** 1. row ***************************
    Table: utf8mb3_table_with_comment
Create Table: CREATE TABLE `utf8mb3_table_with_comment` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='This table comment contains flag 🏳️'
1 row in set (0.00 sec)
```
Sobald Sie Tabellenkommentare identifiziert haben, die nicht unterstützte Zeichen enthalten, aktualisieren Sie die Kommentare mit der `ALTER TABLE`-Anweisung.  

```
MySQL> ALTER TABLE precheck.utf8mb3_table_with_comment COMMENT='Updated comment without non-BMP characters';
```
Alternativ können Sie den Kommentar auch entfernen.  

```
MySQL> ALTER TABLE precheck.utf8mb3_table_with_comment COMMENT='';
```
Nachdem Sie alle nicht unterstützten Zeichen aus allen Tabellenkommentaren entfernt haben, ist die Vorabprüfung erfolgreich.  

```
{
"id": "auroraUpgradeCheckForInvalidUtf8mb3TableComments",
"title": "Check for invalid utf8mb3 table comments.",
"status": "OK",
"detectedProblems": []
},
```

**auroraUpgradeCheckForMasterUser**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen, ob ein RDS-Master-Benutzer existiert**  
MySQL 8 hat ein neues Berechtigungsmodell mit Unterstützung für [Rollen](https://dev.mysql.com/doc/refman/8.0/en/roles.html) und [dynamische Berechtigungen](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#static-dynamic-privileges) hinzugefügt, um die Verwaltung von Berechtigungen einfacher und feiner abgestuft zu gestalten. Im Rahmen dieser Änderung hat Aurora MySQL die neue `rds_superuser_role` eingeführt, die dem Master-Benutzer der Datenbank beim Upgrade von Aurora-MySQL-Version 2 auf Version 3 automatisch gewährt wird.  
Weitere Informationen zu den Rollen und Berechtigungen, die dem Master-Benutzer in Aurora MySQL zugewiesen sind, finden Sie unter [Berechtigungen von Hauptbenutzerkonten](UsingWithRDS.MasterAccounts.md). Weitere Informationen zum rollenbasierten Berechtigungsmodell in Aurora-MySQL-Version 3 finden Sie unter [Rollenbasiertes Berechtigungsmodell](AuroraMySQL.Compare-80-v3.md#AuroraMySQL.privilege-model).  
Diese Vorabprüfung stellt sicher, dass der Master-Benutzer in der Datenbank vorhanden ist. Wenn der Master-Benutzer nicht vorhanden ist, schlägt die Vorabprüfung fehl. Damit das Upgrade fortgesetzt werden kann, müssen Sie den Master-Benutzer neu erstellen, indem Sie das Master-Benutzerpasswort zurücksetzen oder den Benutzer manuell erstellen. Versuchen Sie anschließend das Upgrade erneut. Weitere Informationen zum Zurücksetzen des Master-Benutzerpassworts finden Sie unter [Ändern des Passworts für den Master-Benutzer der Datenbank](Aurora.Modifying.md#Aurora.Modifying.Password).  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForMasterUser",
  "title": "Check if master user exists",
  "status": "OK",
  "description": "Throws error if master user has been dropped!",
  "documentationLink": "https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.MasterAccounts.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "all",
        "description": "Your Master User on host '%' has been dropped. To proceed with the upgrade, recreate the master user `reinvent` on default host '%'"
      }
  ]
}
```
Nachdem Sie Ihr Master-Benutzerpasswort zurückgesetzt haben, ist die Vorabprüfung erfolgreich und Sie können das Upgrade erneut versuchen.  
Im folgenden Beispiel wird die AWS CLI zum Zurücksetzen des Passworts verwendet. Passwortänderungen werden sofort übernommen.  

```
aws rds modify-db-cluster \
    --db-cluster-identifier my-db-cluster \
    --master-user-password my-new-password
```
Anschließend ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraUpgradeCheckForMasterUser",
  title": "Check if master user exists",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForPrefixIndexOnGeometryColumns**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Geometriespalten in Präfixindizes**  
Ab [MySQL 8.0.12](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html#mysqld-8-0-12-spatial-support) können Sie mit dem Datentyp [GEOMETRY](https://dev.mysql.com/doc/refman/5.7/en/gis-data-formats.html) keinen [Präfix](https://dev.mysql.com/doc/refman/5.7/en/column-indexes.html#column-indexes-prefix)-Index mehr für eine Spalte erstellen. Weitere Informationen finden Sie unter [WL\$111808](https://dev.mysql.com/worklog/task/?id=11808).  
Wenn solche Indizes existieren, schlägt Ihr Upgrade fehl. Zum Beheben des Problems löschen Sie die Präfix-`GEOMETRY`-Indizes in den Tabellen, die im Fehler bei der Vorabprüfung genannt wurden.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForPrefixIndexOnGeometryColumns",
  "title": "Check for geometry columns on prefix indexs",
  "status": "OK",
  "description": "Consider dropping the prefix Indexes of geometry columns and restart the upgrade.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.geom_index_prefix",
        "description": "Table `test`.`geom_index_prefix` has an index `LatLon` on geometry column/s. Mysql 8.0 does not support this type of index on a geometry column https://dev.mysql.com/worklog/task/?id=11808. To upgrade to MySQL 8.0, Run 'DROP INDEX `LatLon` ON `test`.`geom_index_prefix`;"
      }
  ]
}
```
Die Vorabprüfung meldet einen Fehler, da die Tabelle `test.geom_index_prefix` einen Index mit einem Präfix in einer `GEOMETRY`-Spalte enthält.  
Nachdem Sie diesen Index gelöscht haben, ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraUpgradeCheckForPrefixIndexOnGeometryColumns",
  "title": "Check for geometry columns on prefix indexs",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForSpecialCharactersInProcedures**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Inkonsistenzen im Zusammenhang mit Sonderzeichen in gespeicherten Prozeduren**  
Vor MySQL 8.0 entsprachen Datenbanknamen, Tabellennamen und andere Objekte Dateien im Datenverzeichnis, also dateibasierten Metadaten. Im Rahmen des Upgrades auf MySQL 8.0 werden alle Datenbankobjekte zu den neuen internen Datenwörterbuchtabellen migriert, die im `mysql`-Schema gespeichert sind, um das neu implementierte [Atomic Data Dictionary](https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html) zu unterstützen. Im Rahmen der Migration von gespeicherten Prozeduren werden Prozedurdefinition und -körper jeder Prozedur validiert, wenn sie in das neue Datenwörterbuch aufgenommen werden.  
Vor MySQL 8 war es in einigen Fällen möglich, gespeicherte Routinen zu erstellen oder Prozeduren, die Sonderzeichen enthielten, direkt in die Tabelle `mysql.proc` einzufügen. Sie konnten beispielsweise eine gespeicherte Prozedur erstellen, die einen Kommentar mit dem nicht konformen, [geschützten Leerzeichen](https://en.wikipedia.org/wiki/Non-breaking_space) `\xa0` enthielt. Wenn solche Prozeduren gefunden werden, schlägt das Upgrade fehl.  
Diese Vorabprüfung stellt sicher, dass die Körper und Definitionen Ihrer gespeicherten Prozeduren keine derartigen Zeichen enthalten. Damit das Upgrade fortgesetzt werden kann, müssen Sie diese gespeicherten Prozeduren ohne versteckte Zeichen oder Sonderzeichen neu erstellen.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForSpecialCharactersInProcedures",
  "title": "Check for inconsistency related to special characters in stored procedures.",
  "status": "OK",
  "description": "Following procedure(s) has special characters inconsistency.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "information_schema.routines",
        "description": "Data Dictionary Metadata is inconsistent for the procedure `get_version_proc` in the database `test` due to usage of special characters in procedure body. To avoid that, drop and recreate the procedure without any special characters before proceeding with the Upgrade."
      }
  ]
}
```
Die Vorabprüfung meldet, dass der DB-Cluster eine Prozedur namens `get_version_proc` in der `test`-Datenbank enthält, deren Prozedurkörper Sonderzeichen enthält.  
Nach dem Löschen und Neuerstellen der gespeicherten Prozedur ist die Vorabprüfung erfolgreich, sodass das Upgrade fortgesetzt werden kann.  

```
{
  "id": "auroraUpgradeCheckForSpecialCharactersInProcedures",
  "title": "Check for inconsistency related to special characters in stored procedures.",
  "status": "OK",
  "detectedProblems": []
},
```

**auroraUpgradeCheckForSysSchemaObjectTypeMismatch**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen der Nichtübereinstimmung von Objekttypen im `sys`-Schema**  
Das [sys-Schema](https://dev.mysql.com/doc/refman/8.0/en/sys-schema.html) besteht aus einer Reihe von Objekten und Ansichten in einer MySQL-Datenbank und unterstützt Benutzer bei der Fehleranalyse, Optimierung und Überwachung ihrer DB-Instances. Wenn ein Hauptversions-Upgrade von Aurora-MySQL-Version 2 auf Version 3 durchgeführt wird, werden die `sys`-Schemaansichten neu erstellt und auf die neuen Definitionen von Aurora-MySQL-Version 3 aktualisiert.  
Im Rahmen des Upgrades schlägt dieses fehl, wenn Objekte im `sys`-Schema mit Speicher-Engines (`sys_config/BASE TABLE` in [INFORMATION\$1SCHEMA.TABLES](https://dev.mysql.com/doc/refman/5.7/en/information-schema-tables-table.html)) statt mit Ansichten definiert sind. Solche Tabellen finden Sie in der Tabelle `information_schema.tables`. Dies ist kein erwartetes Verhalten, kann aber in einigen Fällen aufgrund eines Benutzerfehlers auftreten.  
Diese Vorabprüfung validiert alle `sys`-Schemaobjekte, um sicherzustellen, dass sie die richtigen Tabellendefinitionen verwenden und dass Ansichten nicht fälschlicherweise als InnoDB- oder MyISAM-Tabellen definiert sind. Zum Beheben des Problems korrigieren Sie alle zurückgegebenen Objekte manuell, indem Sie sie umbenennen oder löschen. Versuchen Sie anschließend das Upgrade erneut.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForSysSchemaObjectTypeMismatch",
  "title": "Check object type mismatch for sys schema.",
  "status": "OK",
  "description": "Database contains objects with type mismatch for sys schema.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "sys.waits_global_by_latency",
        "description": "Your object sys.waits_global_by_latency has a type mismatch. To fix the inconsistency we recommend to rename or remove the object before upgrading (use RENAME TABLE command). "
      }
  ]
}
```
Die Vorabprüfung meldet, dass die Ansicht [sys.waits\$1global\$1by\$1latency](https://dev.mysql.com/doc/refman/5.7/en/sys-waits-global-by-latency.html) im `sys`-Schema einen Typkonflikt aufweist, der die Fortsetzung des Upgrades verhindert.  
Nachdem Sie sich bei der DB-Instance angemeldet haben, können Sie sehen, dass dieses Objekt als InnoDB-Tabelle definiert ist, obwohl es eine Ansicht sein sollte.  

```
mysql> show create table sys.waits_global_by_latency\G
*************************** 1. row ***************************
       Table: waits_global_by_latency
Create Table: CREATE TABLE `waits_global_by_latency` (
  `events` varchar(128) DEFAULT NULL,
  `total` bigint(20) unsigned DEFAULT NULL,
  `total_latency` text,
  `avg_latency` text,
  `max_latency` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
```
Zum Beheben dieses Problems können wir die Ansicht entweder löschen und mit der [richtigen Definition](https://github.com/mysql/mysql-server/blob/mysql-5.7.44/scripts/sys_schema/views/p_s/waits_global_by_latency.sql) neu erstellen oder sie umbenennen. Während des Upgrade-Vorgangs wird sie automatisch mit der richtigen Tabellendefinition erstellt.  

```
mysql> RENAME TABLE sys.waits_global_by_latency to sys.waits_global_by_latency_old;
Query OK, 0 rows affected (0.01 sec)
```
Nachdem dies durchgeführt wurde, ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraUpgradeCheckForSysSchemaObjectTypeMismatch",
  "title": "Check object type mismatch for sys schema.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckForViewColumnNameLength**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen der Obergrenze für einen Spaltennamen in einer Ansicht**  
Die [maximal zulässige Länge eines Spaltennamens](https://dev.mysql.com/doc/refman/5.7/en/identifier-length.html) in MySQL beträgt 64 Zeichen. Vor MySQL 8.0 war es in einigen Fällen möglich, eine Ansicht mit einem Spaltennamen mit mehr als 64 Zeichen zu erstellen. Wenn solche Ansichten in Ihrer Datenbank-Instance existieren, wird ein Fehler bei der Vorabprüfung zurückgegeben und das Upgrade schlägt fehl. Damit das Upgrade fortgesetzt werden kann, müssen Sie die fraglichen Ansichten neu erstellen und dabei sicherstellen, dass ihre Spaltenlänge weniger als 64 Zeichen beträgt. Versuchen Sie anschließend das Upgrade erneut.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForViewColumnNameLength",
  "title": "Check for upperbound limit related to column name in view.",
  "status": "OK",
  "description": "Following view(s) has column(s) with length greater than 64.",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.colname_view_test.col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad",
        "description": "View `test`.`colname_view_test`has column `col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad` with invalid column name length. To avoid Upgrade errors, view should be altered by renaming the column name so that its length is not 0 and doesn't exceed 64."
      }
  ]
}
```
Die Vorabprüfung meldet, dass die Ansicht `test.colname_view_test` eine `col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad`-Spalte enthält, die die maximal zulässige Spaltenlänge von 64 Zeichen überschreitet.  
Wenn wir uns die Ansichtsdefinition ansehen, können wir die problematische Spalte sehen.  

```
mysql> desc `test`.`colname_view_test`;
+------------------------------------------------------------------+-------------+------+-----+---------+-------+
| Field                                                            | Type        | Null | Key | Default | Extra |
+------------------------------------------------------------------+-------------+------+-----+---------+-------+
| col1                                                             | varchar(20) | YES  |     | NULL    |       |
| col2_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad_pad | int(11)     | YES  |     | NULL    |       |
+------------------------------------------------------------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
```
Damit das Upgrade fortgesetzt werden kann, müssen Sie die Ansicht neu erstellen und dabei sicherstellen, dass die Spaltenlänge 64 Zeichen nicht überschreitet.  

```
mysql> drop view `test`.`colname_view_test`;
Query OK, 0 rows affected (0.01 sec)

mysql> create view `test`.`colname_view_test`(col1, col2_nopad) as select inf, fodcol from test;
Query OK, 0 rows affected (0.01 sec)

mysql> desc `test`.`colname_view_test`;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| col1       | varchar(20) | YES  |     | NULL    |       |
| col2_nopad | int(11)     | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
```
Nachdem dies durchgeführt wurde, ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraUpgradeCheckForViewColumnNameLength",
  "title": "Check for upperbound limit related to column name in view.",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckIndexLengthLimitOnTinyColumns**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen auf Tabellen mit Indizes, die für kleine Spalten mit einer Präfixlänge von mehr als 255 Byte definiert sind**  
Wenn Sie einen Index für eine Spalte mit einem [binären Datentyp](https://dev.mysql.com/doc/refman/5.7/en/binary-varbinary.html) in MySQL erstellen, müssen Sie der Indexdefinition eine [Präfixlänge](https://dev.mysql.com/doc/refman/5.7/en/column-indexes.html#column-indexes-prefix) hinzufügen. Vor MySQL 8.0 war es in einigen Fällen möglich, eine Präfixlänge anzugeben, die größer als die maximal zulässige Größe solcher Datentypen war. Ein Beispiel dafür sind `TINYTEXT`- und `TINYBLOB`-Spalten, bei denen die maximal zulässige Datengröße 255 Byte beträgt, aber auch größere Indexpräfixe zulässig waren. Weitere Informationen finden Sie unter [Limits für InnoDB](https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html) in der MySQL-Dokumentation.  
Wenn diese Vorabprüfung fehlschlägt, löschen Sie den problematischen Index oder reduzieren Sie die Präfixlänge von `TINYTEXT`- und `TINYBLOB`-Spalten des Indexes auf weniger als 255 Byte. Versuchen Sie anschließend das Upgrade erneut.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckIndexLengthLimitOnTinyColumns",
  "title": "Check for the tables with indexes defined with prefix length greater than 255 bytes on tiny columns",
  "status": "OK",
  "description": "Prefix length of the indexes defined on tiny columns cannot exceed 255 bytes. With utf8mb4 char set, this limits the prefix length supported upto 63 characters only. A larger prefix length was allowed in MySQL5.7 using innodb_large_prefix parameter. This parameter is deprecated in MySQL 8.0.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html, https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.tintxt_prefixed_index.col1",
        "description": "Index 'PRIMARY' on tinytext/tinyblob column `col1` of table `test.tintxt_prefixed_index` is defined with prefix length exceeding 255 bytes. Reduce the prefix length to <=255 bytes depending on character set used. For utf8mb4, it should be <=63."
      }
  ]
}
```
Die Vorabprüfung meldet einen Fehler für die Tabelle `test.tintxt_prefixed_index`, da sie über einen `PRIMARY`-Index verfügt, dessen Präfix für eine TINYTEXT- oder TINYBLOB-Spalte größer als 255 Byte ist.  
Wenn wir uns die Definition für diese Tabelle ansehen, können wir sehen, dass der Primärschlüssel einen Präfix von 65 für die `TINYTEXT`-Spalte `col1` aufweist. Da die Tabelle mit dem `utf8mb4`-Zeichensatz definiert wird, der 4 Byte pro Zeichen speichert, überschreitet das Präfix die 255-Byte-Grenze.  

```
mysql> show create table `test`.`tintxt_prefixed_index`\G
*************************** 1. row ***************************
       Table: tintxt_prefixed_index
Create Table: CREATE TABLE `tintxt_prefixed_index` (
  `col1` tinytext NOT NULL,
  `col2` tinytext,
  `col_id` tinytext,
  PRIMARY KEY (`col1`(65))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC
1 row in set (0.00 sec)
```
Wenn Sie das Indexpräfix auf 63 ändern, während Sie den `utf8mb4`-Zeichensatz verwenden, kann das Upgrade fortgesetzt werden.  

```
mysql> alter table `test`.`tintxt_prefixed_index` drop PRIMARY KEY, ADD  PRIMARY KEY (`col1`(63));
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
```
Nachdem dies durchgeführt wurde, ist die Vorabprüfung erfolgreich.  

```
{
  "id": "auroraUpgradeCheckIndexLengthLimitOnTinyColumns",
  "title": "Check for the tables with indexes defined with prefix length greater than 255 bytes on tiny columns",
  "status": "OK",
  "detectedProblems": []
}
```

**auroraUpgradeCheckMissingInnodbMetadataForMysqlHostTable**  
**Stufe der Vorabprüfung: Fehler**  
**Prüfen der Inkonsistenz fehlender InnoDB-Metadaten für die Tabelle `mysql.host`**  
Dies ist eine rein interne Vorabprüfung, die vom RDS-Service durchgeführt wird. Alle Fehler werden beim Upgrade automatisch behandelt und können problemlos ignoriert werden.  
Wenn Sie bei dieser Vorabprüfung auf Fehler stoßen, wenden Sie sich an den [AWS Support](https://aws.amazon.com/support), um die Behebung der Metadaten-Inkonsistenz zu beantragen. Alternativ können Sie das Upgrade erneut versuchen, indem Sie einen logischen Dump durchführen und dann in einem neuen DB-Cluster von Aurora-MySQL-Version 3 wiederherstellen.

## Warnungen
<a name="precheck-descriptions-warnings"></a>

Die folgenden Vorabprüfungen generieren Warnungen, wenn die Vorabprüfung fehlschlägt, aber das Upgrade kann fortgesetzt werden.

**Topics**
+ [MySQL-Vorabprüfungen, die Warnungen melden](#precheck-descriptions-warnings.mysql)
+ [Aurora-MySQL-Vorabprüfungen, die Warnungen melden](#precheck-descriptions-warnings.aurora)

### MySQL-Vorabprüfungen, die Warnungen melden
<a name="precheck-descriptions-warnings.mysql"></a>

Die folgenden Vorabprüfungen stammen von Community MySQL:
+ [defaultAuthenticationPlugin](#defaultAuthenticationPlugin)
+ [maxdbFlagCheck](#maxdbFlagCheck)
+ [mysqlDollarSignNameCheck](#mysqlDollarSignNameCheck)
+ [reservedKeywordsCheck](#reservedKeywordsCheck)
+ [utf8mb3Check](#utf8mb3Check)
+ [zeroDatesCheck](#zeroDatesCheck)

**defaultAuthenticationPlugin**  
**Stufe der Vorabprüfung: Warnung**  
**Überlegungen zum neuen Standard-Authentifizierungs-Plugin**  
In MySQL 8.0 wurde das `caching_sha2_password`-Authentifizierungs-Plugin eingeführt, das eine sicherere Passwortverschlüsselung und eine bessere Leistung als das veraltete `mysql_native_password`-Plugin bietet. Für Aurora-MySQL-Version 3 ist das für Datenbankbenutzer verwendete Standard-Authentifizierungs-Plugin das `mysql_native_password`-Plugin.  
Diese Vorabprüfung warnt davor, dass dieses Plugin entfernt und die Standardeinstellung in einer künftigen Hauptversion geändert wird. Erwägen Sie, vor dieser Änderung die Kompatibilität Ihrer Anwendungsclients und Benutzer zu überprüfen.  
Weitere Informationen finden Sie unter [Kompatibilitätsprobleme mit caching\$1sha2\$1password und deren Lösungen](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatibility-issues) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "defaultAuthenticationPlugin",
  "title": "New default authentication plugin considerations",
  "description": "Warning: The new default authentication plugin 'caching_sha2_password' offers more secure password hashing than previously used 'mysql_native_password' (and consequent improved client connection authentication). However, it also has compatibility implications that may affect existing MySQL installations. If your MySQL installation must serve pre-8.0 clients and you encounter compatibility issues after upgrading, the simplest way to address those issues is to reconfigure the server to revert to the previous default authentication plugin (mysql_native_password). For example, use these lines in the server option file:\n\n[mysqld]\ndefault_authentication_plugin=mysql_native_password\n\nHowever, the setting should be viewed as temporary, not as a long term or permanent solution, because it causes new accounts created with the setting in effect to forego the improved authentication security.\nIf you are using replication please take time to understand how the authentication plugin changes may impact you.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatibility-issues\nhttps://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-replication"
},
```

**maxdbFlagCheck**  
**Stufe der Vorabprüfung: Warnung**  
**Verwendung eines veralteten `MAXDB`-`sql_mode`-Flags**  
In MySQL 8.0 wurden eine Reihe von veralteten [sql\$1mode](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_sql_mode)-Systemvariablenoptionen [entfernt](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html), darunter `MAXDB`. Diese Vorabprüfung untersucht alle derzeit verbundenen Sitzungen sowie Routinen und Trigger, um sicherzustellen, dass keine davon `sql_mode` auf eine Kombination gesetzt haben, die `MAXDB` enthält.  
**Beispielausgabe:**  

```
{
  "id": "maxdbFlagCheck",
  "title": "Usage of obsolete MAXDB sql_mode flag",
  "status": "OK",
  "description": "Warning: The following DB objects have the obsolete MAXDB option persisted for sql_mode, which will be cleared during the upgrade. It can potentially change the datatype DATETIME into TIMESTAMP if it is used inside object's definition, and this in turn can change the behavior in case of dates earlier than 1970 or later than 2037. If this is a concern, please redefine these objects so that they do not rely on the MAXDB flag before running the upgrade.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.maxdb_stored_routine",
        "description": "PROCEDURE uses obsolete MAXDB sql_mode",
        "dbObjectType": "Routine"
      }
  ]
}
```
Die Vorabprüfung meldet, dass die Routine `test.maxdb_stored_routine` eine nicht unterstützte `sql_mode`-Option enthält.  
Nachdem Sie sich bei der Datenbank angemeldet haben, können Sie in der Routinedefinition sehen, dass `sql_mode` `MAXDB` enthält.  

```
 > SHOW CREATE PROCEDURE test.maxdb_stored_routine\G

*************************** 1. row ***************************
           Procedure: maxdb_stored_routine
            sql_mode: PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
    Create Procedure: CREATE DEFINER="msandbox"@"localhost" PROCEDURE "maxdb_stored_routine"()
BEGIN
    SELECT * FROM test;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Zum Beheben des Problems erstellen Sie die Prozedur neu, nachdem Sie den richtigen `sql_mode` auf dem Client festgelegt haben.  
Gemäß der [MySQL-Dokumentation](https://dev.mysql.com/doc/refman/5.7/en/create-procedure.html) speichert MySQL die `sql_mode`-Einstellung, die gültig ist, wenn eine Routine erstellt oder geändert wird. Die Routine wird stets mit dieser Einstellung ausgeführt, unabhängig von der `sql_mode`-Einstellung beim Start der Routine.  
Lesen Sie vor der Änderung von `sql_mode` den Abschnitt [Server-SQL-Modi](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html) in der MySQL-Dokumentation. Prüfen Sie sorgfältig, welche möglichen Auswirkungen dies auf Ihre Anwendung haben könnte.
Erstellen Sie die Prozedur ohne den nicht unterstützten `sql_mode` neu.  

```
mysql > set sql_mode='PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql > DROP PROCEDURE test.maxdb_stored_routine\G
Query OK, 0 rows affected (0.00 sec)

mysql >
mysql > DELIMITER $$
mysql >
mysql > CREATE PROCEDURE test.maxdb_stored_routine()
    -> SQL SECURITY DEFINER
    -> BEGIN
    ->     SELECT * FROM test;
    -> END$$
Query OK, 0 rows affected (0.00 sec)

mysql >
mysql > DELIMITER ;
mysql > show create procedure test.maxdb_stored_routine\G
*************************** 1. row ***************************
           Procedure: maxdb_stored_routine
            sql_mode: PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE
    Create Procedure: CREATE DEFINER="msandbox"@"localhost" PROCEDURE "maxdb_stored_routine"()
BEGIN
    SELECT * FROM test;
END
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)
```
Die Vorabprüfung ist erfolgreich.  

```
{
  "id": "maxdbFlagCheck",
  "title": "Usage of obsolete MAXDB sql_mode flag",
  "status": "OK",
  "detectedProblems": []
}
```

**mysqlDollarSignNameCheck**  
**Stufe der Vorabprüfung: Warnung**  
**Prüfen auf die veraltete Verwendung einzelner Dollarzeichen in Objektnamen**  
Ab [MySQL 8.0.32](https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-32.html#mysqld-8-0-32-deprecation-removal) ist die Verwendung des Dollarzeichens (`$`) als erstes Zeichen eines Bezeichners ohne Anführungszeichen veraltet. Wenn Sie über Schemas, Tabellen, Ansichten, Spalten oder Routinen verfügen, die ein `$` als erstes Zeichen enthalten, gibt diese Vorabprüfung eine Warnung zurück. Diese Warnung verhindert zwar nicht, dass das Upgrade fortgesetzt wird, wir empfehlen Ihnen jedoch, bald Maßnahmen zu ergreifen, um dieses Problem zu beheben. Ab [MySQL 8.4](https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html) geben solche Bezeichner eher einen Syntaxfehler als eine Warnung zurück.  
**Beispielausgabe:**  

```
{
  "id": "mysqlDollarSignNameCheck",
  "title": "Check for deprecated usage of single dollar signs in object names",
  "status": "OK",
  "description": "Warning: The following objects have names with deprecated usage of dollar sign ($) at the begining of the identifier. To correct this warning, ensure, that names starting with dollar sign, also end with it, similary to quotes ($example$). ",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.$deprecated_syntx",
        "description": " name starts with $ sign."
      }
  ]
},
```
Die Vorabprüfung gibt eine Warnung aus, da die Tabelle `$deprecated_syntx` im `test`-Schema ein `$` als erstes Zeichen enthält.

**reservedKeywordsCheck**  
**Stufe der Vorabprüfung: Warnung**  
**Verwendung von Datenbankobjekten, deren Namen mit neuen reservierten Schlüsselwörtern kollidieren**  
Diese Prüfung ähnelt [routineSyntaxCheck](#routineSyntaxCheck), da sie die Verwendung von Datenbankobjekten prüft, deren Namen mit neuen reservierten Schlüsselwörtern kollidieren. Obwohl sie Upgrades nicht blockieren, müssen Warnungen sorgfältig bewertet werden.  
**Beispielausgabe:**  
Bei Verwendung des vorherigen Beispiels mit der Tabelle namens `except` gibt die Vorabprüfung eine Warnung zurück:  

```
{
  "id": "reservedKeywordsCheck",
  "title": "Usage of db objects with names conflicting with new reserved keywords",
  "status": "OK",
  "description": "Warning: The following objects have names that conflict with new reserved keywords. Ensure queries sent by your applications use `quotes` when referring to them or they will result in errors.",
  "documentationLink": "https://dev.mysql.com/doc/refman/en/keywords.html",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.except",
        "description": "Table name",
        "dbObjectType": "Table"
      }
  ]
}
```
Diese Warnung informiert Sie darüber, dass möglicherweise einige Anwendungsabfragen überprüft werden müssen. Wenn Ihre Anwendungsabfragen [Zeichenfolgenliterale nicht korrekt maskieren](https://dev.mysql.com/doc/refman/8.0/en/string-literals.html), kann es nach dem Upgrade auf MySQL 8.0 zu Fehlern kommen. Überprüfen Sie Ihre Anwendungen zur Bestätigung und testen Sie sie anhand eines Klons oder Snapshots Ihres DB-Clusters von Aurora MySQL, der auf Version 3 ausgeführt wird.  
Beispiel für eine nicht maskierte Anwendungsabfrage, die nach dem Upgrade fehlschlägt:  

```
SELECT * FROM escape;
```
Beispiel für eine korrekt maskierte Anwendungsabfrage, die nach dem Upgrade erfolgreich ist:  

```
SELECT * FROM 'escape';
```

**utf8mb3Check**  
**Stufe der Vorabprüfung: Warnung**  
**Verwendung des `utf8mb3`-Zeichensatzes**  
In MySQL 8.0 ist der `utf8mb3`-Zeichensatz veraltet und wird in einer künftigen MySQL-Hauptversion entfernt. Diese Vorabprüfung ist implementiert, um eine Warnung auszulösen, wenn Datenbankobjekte mit diesem Zeichensatz erkannt werden. Dies verhindert zwar nicht, dass ein Upgrade fortgesetzt wird, wir empfehlen Ihnen jedoch dringend, darüber nachzudenken, Tabellen zum `utf8mb4`-Zeichensatz zu migrieren, der ab MySQL 8.0 die Standardeinstellung ist. Weitere Informationen zu [utf8mb3](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html) und [utf8mb4](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb4.html) finden Sie unter [Konvertierung zwischen 3-Byte- und 4-Byte-Unicode-Zeichensätzen](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-conversion.html) in der MySQL-Dokumentation.  
**Beispielausgabe:**  

```
{
  "id": "utf8mb3",
  "title": "Usage of utf8mb3 charset",
  "status": "OK",
  "description": "Warning: The following objects use the deprecated utf8mb3 character set. It is recommended to convert them to use utf8mb4 instead, for improved Unicode support. The utf8mb3 character is subject to removal in the future.",
  "documentationLink": "https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.t1.col1",
        "description": "column's default character set: utf8",
        "dbObjectType": "Column"
      },
      {
        "level": "Warning",
        "dbObject": "test.t1.col2",
        "description": "column's default character set: utf8",
        "dbObjectType": "Column"
      }
  ]
}
```
Zum Beheben dieses Problems erstellen Sie die Objekte und Tabellen neu, auf die verwiesen wird. Weitere Informationen und Voraussetzungen dafür finden Sie unter [Konvertierung zwischen 3-Byte- und 4-Byte-Unicode-Zeichensätzen](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-conversion.html) in der MySQL-Dokumentation.

**zeroDatesCheck**  
**Stufe der Vorabprüfung: Warnung**  
**Nullwerte für Date, Datetime und Timestamp**  
MySQL erzwingt jetzt strengere Regeln für die Verwendung von Nullwerten in Date-, Datetime- und Timestamp-Spalten. Wir empfehlen, die Modi `NO_ZERO_IN_DATE` und `NO_ZERO_DATE SQL` zusammen mit dem Modus `strict` zu verwenden, da sie in einer künftigen MySQL-Version mit dem Modus `strict` zusammengeführt werden.  
Wenn die `sql_mode`-Einstellung für eine Ihrer Datenbankverbindungen zum Zeitpunkt der Ausführung der Vorabprüfung diese Modi nicht enthält, wird bei der Vorabprüfung eine Warnung ausgegeben. Benutzer können möglicherweise weiterhin Werte für Date, Datetime und Timestamp einfügen, die Nullwerte enthalten. Wir empfehlen jedoch dringend, alle Nullwerte durch gültige Werte zu ersetzen, da sich ihr Verhalten in Zukunft ändern könnte und sie möglicherweise nicht richtig funktionieren. Da es sich um eine Warnung handelt, werden Upgrades dadurch nicht blockiert. Wir empfehlen Ihnen jedoch, mit der Planung von Maßnahmen zu beginnen.  
**Beispielausgabe:**  

```
{
  "id": "zeroDatesCheck",
  "title": "Zero Date, Datetime, and Timestamp values",
  "status": "OK",
  "description": "Warning: By default zero date/datetime/timestamp values are no longer allowed in MySQL, as of 5.7.8 NO_ZERO_IN_DATE and NO_ZERO_DATE are included in SQL_MODE by default. These modes should be used with strict mode as they will be merged with strict mode in a future release. If you do not include these modes in your SQL_MODE setting, you are able to insert date/datetime/timestamp values that contain zeros. It is strongly advised to replace zero values with valid ones, as they may not work correctly in the future.",
  "documentationLink": "https://lefred.be/content/mysql-8-0-and-wrong-dates/",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "global.sql_mode",
        "description": "does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      },
      {
        "level": "Warning",
        "dbObject": "session.sql_mode",
        "description": " of 10 session(s) does not contain either NO_ZERO_DATE or NO_ZERO_IN_DATE which allows insertion of zero dates"
      }
  ]
}
```

### Aurora-MySQL-Vorabprüfungen, die Warnungen melden
<a name="precheck-descriptions-warnings.aurora"></a>

Die folgenden Vorabprüfungen sind spezifisch für Aurora MySQL:
+ [auroraUpgradeCheckForRollbackSegmentHistoryLength](#auroraUpgradeCheckForRollbackSegmentHistoryLength)
+ [auroraUpgradeCheckForUncommittedRowModifications](#auroraUpgradeCheckForUncommittedRowModifications)

**auroraUpgradeCheckForRollbackSegmentHistoryLength**  
**Stufe der Vorabprüfung: Warnung**  
**Prüft, ob die Länge der Liste des Rollback-Segmentverlaufs für den Cluster hoch ist**  
Wie in [auroraUpgradeCheckForIncompleteXATransactions](#auroraUpgradeCheckForIncompleteXATransactions) erwähnt, ist es wichtig, dass die DB-Instance von Aurora-MySQL-Version 2 während des Upgrade-Prozesses für die Hauptversion [ordnungsgemäß heruntergefahren](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_slow_shutdown) wird. Dadurch wird sichergestellt, dass alle Transaktionen festgeschrieben oder rückgängig gemacht werden und dass InnoDB alle Undo-Protokolleinträge bereinigt hat.  
Wenn Ihr DB-Cluster eine hohe Länge der Liste des Rollback-Segmentverlaufs (History List Length, HLL) aufweist, kann das die Zeit verlängern, die InnoDB benötigt, um die Undo-Protokolleinträge zu bereinigen. Dies führt zu längeren Ausfallzeiten während des Upgrade-Prozesses für die Hauptversion. Wenn die Vorabprüfung feststellt, dass der HLL-Wert in Ihrem DB-Cluster hoch ist, wird eine Warnung ausgegeben. Dies verhindert zwar nicht, dass Ihr Upgrade fortgesetzt wird, wir empfehlen Ihnen jedoch, die HLL in Ihrem DB-Cluster genau zu überwachen. Ein möglichst niedriger Wert reduziert die Ausfallzeit, die während des Hauptversions-Upgrade erforderlich ist. Weitere Informationen zur Überwachung der HLL finden Sie unter [Die Länge der InnoDB-Verlaufsliste wurde deutlich erhöht](proactive-insights.history-list.md).  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForRollbackSegmentHistoryLength",
  "title": "Checks if the rollback segment history length for the cluster is high",
  "status": "OK",
  "description": "Rollback Segment History length is greater than 1M. Upgrade may take longer time.",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "information_schema.innodb_metrics",
        "description": "The InnoDB undo history list length('trx_rseg_history_len') is 82989114. Upgrade may take longer due to purging of undo information for old row versions."
      }
  ]
}
```
Die Vorabprüfung gibt eine Warnung zurück, da festgestellt wurde, dass die InnoDB-Undo-HLL im Datenbank-Cluster hoch war (82989114). Obwohl das Upgrade fortgesetzt wird, kann sich die erforderliche Ausfallzeit während des Upgrade-Vorgangs je nach Umfang der zu bereinigenden Undo-Daten verlängern.  
Wir empfehlen Ihnen, [offene Transaktionen in Ihrem DB-Cluster zu untersuchen](proactive-insights.history-list.md), bevor Sie das Upgrade in der Produktion ausführen, um sicherzustellen, dass Ihre HLL eine überschaubare Größe hat.

**auroraUpgradeCheckForUncommittedRowModifications**  
**Stufe der Vorabprüfung: Warnung**  
**Prüft, ob es viele nicht festgeschriebene Zeilenänderungen gibt**  
Wie in [auroraUpgradeCheckForIncompleteXATransactions](#auroraUpgradeCheckForIncompleteXATransactions) erwähnt, ist es wichtig, dass die DB-Instance von Aurora-MySQL-Version 2 während des Upgrade-Prozesses für die Hauptversion [ordnungsgemäß heruntergefahren](https://dev.mysql.com/doc/refman/5.7/en/glossary.html#glos_slow_shutdown) wird. Dadurch wird sichergestellt, dass alle Transaktionen festgeschrieben oder rückgängig gemacht werden und dass InnoDB alle Undo-Protokolleinträge bereinigt hat.  
Wenn Ihr DB-Cluster über Transaktionen verfügt, die eine große Anzahl von Zeilen geändert haben, kann dies die Zeit verlängern, die InnoDB benötigt, um ein Rollback dieser Transaktion als Teil des ordnungsgemäßen Herunterfahrens abzuschließen. Wenn bei der Vorabprüfung lang laufende Transaktionen mit einer großen Anzahl von geänderten Zeilen in Ihrem DB-Cluster festgestellt werden, wird eine Warnung ausgegeben. Dies verhindert zwar nicht, dass Ihr Upgrade fortgesetzt wird, wir empfehlen Ihnen jedoch, die Größe der aktiven Transaktionen in Ihrem DB-Cluster genau zu überwachen. Ein möglichst niedriger Wert reduziert die Ausfallzeit, die während des Hauptversions-Upgrade erforderlich ist.  
**Beispielausgabe:**  

```
{
  "id": "auroraUpgradeCheckForUncommittedRowModifications",
  "title": "Checks if there are many uncommitted modifications to rows",
  "status": "OK",
  "description": "Database contains uncommitted row changes greater than 10M. Upgrade may take longer time.",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "information_schema.innodb_trx",
        "description": "The database contains 11000000 uncommitted row change(s) in 1 transaction(s). Upgrade may take longer due to transaction rollback."
      }
  ]
},
```
Die Vorabprüfung meldet, dass der DB-Cluster eine Transaktion mit 11 000 000 nicht festgeschriebenen Zeilenänderungen enthält, die während des ordnungsgemäßen Herunterfahrens rückgängig gemacht werden müssen. Das Upgrade wird fortgesetzt, aber um die Ausfallzeiten während des Upgrade-Prozesses zu reduzieren, empfehlen wir Ihnen, dies zu überwachen und zu untersuchen, bevor Sie das Upgrade in Ihren Produktions-Clustern ausführen.  
Wenn Sie aktive Transaktionen in Ihrer Schreiber-DB-Instance anzeigen möchten, können Sie die Tabelle [information\$1schema.innodb\$1trx](https://dev.mysql.com/doc/refman/5.7/en/information-schema-innodb-trx-table.html) verwenden. Die folgende Abfrage der Schreiber-DB-Instance zeigt aktuelle Transaktionen, die Laufzeit, den Status und geänderte Zeilen für den DB-Cluster.  

```
# Example of uncommitted transaction
mysql> SELECT trx_started,
       TIME_TO_SEC(TIMEDIFF(now(), trx_started)) AS seconds_trx_has_been_running,
       trx_mysql_thread_id AS show_processlist_connection_id,
       trx_id,
       trx_state,
       trx_rows_modified AS rows_modified
FROM information_schema.innodb_trx;
+---------------------+------------------------------+--------------------------------+----------+-----------+---------------+
| trx_started         | seconds_trx_has_been_running | show_processlist_connection_id | trx_id   | trx_state | rows_modified |
+---------------------+------------------------------+--------------------------------+----------+-----------+---------------+
| 2024-08-12 18:32:52 |                         1592 |                          20041 | 52866130 | RUNNING   |      11000000 |
+---------------------+------------------------------+--------------------------------+----------+-----------+---------------+
1 row in set (0.01 sec)

# Example of transaction rolling back
mysql> SELECT trx_started,
       TIME_TO_SEC(TIMEDIFF(now(), trx_started)) AS seconds_trx_has_been_running,
       trx_mysql_thread_id AS show_processlist_connection_id,
       trx_id,
       trx_state,
       trx_rows_modified AS rows_modified
FROM information_schema.innodb_trx;
+---------------------+------------------------------+--------------------------------+----------+--------------+---------------+
| trx_started         | seconds_trx_has_been_running | show_processlist_connection_id | trx_id   | trx_state    | rows_modified |
+---------------------+------------------------------+--------------------------------+----------+--------------+---------------+
| 2024-08-12 18:32:52 |                         1719 |                          20041 | 52866130 | ROLLING BACK |      10680479 |
+---------------------+------------------------------+--------------------------------+----------+--------------+---------------+
1 row in set (0.01 sec)
```
Nachdem die Transaktion festgeschrieben oder rückgängig gemacht wurde, gibt die Vorabprüfung keine Warnung mehr zurück. Konsultieren Sie die MySQL-Dokumentation und Ihr Anwendungsteam, bevor Sie große Transaktionen rückgängig machen, da das Rollback je nach Transaktionsgröße einige Zeit in Anspruch nehmen kann.  

```
{
  "id": "auroraUpgradeCheckForUncommittedRowModifications",
  "title": "Checks if there are many uncommitted modifications to rows",
  "status": "OK",
  "detectedProblems": []
},
```
Weitere Informationen zur Optimierung der InnoDB-Transaktionsverwaltung und zu den möglichen Auswirkungen der Ausführung und des Rollbacks großer Transaktionen in MySQL-Datenbank-Instances finden Sie unter [Optimieren der InnoDB-Transaktionsverwaltung](https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-transaction-management.html) in der MySQL-Dokumentation.

## Hinweise
<a name="precheck-descriptions-notices"></a>

Die folgende Vorabprüfung generiert einen Hinweis, wenn die Vorabprüfung fehlschlägt, aber das Upgrade kann fortgesetzt werden.

**sqlModeFlagCheck**  
**Stufe der Vorabprüfung: Hinweis**  
**Verwendung von veralteten `sql_mode`-Flags**  
Zusätzlich zu `MAXDB` wurden eine Reihe weiterer `sql_mode`-Optionen [entfernt](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html): `DB2`, `MSSQL`, `MYSQL323`, `MYSQL40`, `ORACLE`, `POSTGRESQL`, `NO_FIELD_OPTIONS`, `NO_KEY_OPTIONS` und `NO_TABLE_OPTIONS`. Ab MySQL 8.0 kann keiner dieser Werte der Systemvariablen `sql_mode` zugewiesen werden. Wenn diese Vorabprüfung offene Sitzungen findet, die diese `sql_mode`-Einstellungen verwenden, stellen Sie sicher, dass Ihre DB-Instance- und DB-Cluster-Parametergruppen sowie Client-Anwendungen und -Konfigurationen aktualisiert werden, um sie zu deaktivieren. Weitere Informationen finden Sie in der [MySQL-Dokumentation](https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html).  
**Beispielausgabe:**  

```
{
  "id": "sqlModeFlagCheck",
  "title": "Usage of obsolete sql_mode flags",
  "status": "OK",
  "detectedProblems": []
}
```
Informationen zum Beheben dieser Fehler bei der Vorabprüfung finden Sie unter [maxdbFlagCheck](#maxdbFlagCheck).

## Fehler, Warnungen oder Hinweise
<a name="precheck-descriptions-all"></a>

Die folgende Vorabprüfung kann je nach Ausgabe der Vorabprüfung einen Fehler, eine Warnung oder einen Hinweis zurückgeben.

**checkTableOutput**  
**Stufe der Vorabprüfung: Fehler, Warnung oder Hinweis**  
**Probleme, die vom Befehl `check table x for upgrade` gemeldet wurden**  
Bevor das Upgrade auf Aurora-MySQL-Version 3 gestartet wird, wird `check table for upgrade` für jede Tabelle in den Benutzerschemas in Ihrem DB-Cluster ausgeführt. Diese Vorabprüfung entspricht nicht [checkTableMysqlSchema](#checkTableMysqlSchema).  
Der Befehl `check table for upgrade` untersucht Tabellen auf mögliche Probleme, die bei einem Upgrade auf eine neuere Version von MySQL auftreten könnten. Das Ausführen dieses Befehls vor dem Upgrade kann helfen, etwaige Inkompatibilitäten im Voraus zu identifizieren und zu beheben, sodass der eigentliche Upgrade-Prozess reibungsloser abläuft.  
Mit diesem Befehl werden verschiedene Prüfungen für jede Tabelle durchgeführt, z. B. die folgenden:  
+ Überprüfung, ob die Tabellenstruktur und die Metadaten mit der Ziel-MySQL-Version kompatibel sind
+ Prüfung auf veraltete oder entfernte Funktionen, die von der Tabelle verwendet werden
+ Sicherstellung, dass die Tabelle ordnungsgemäß und ohne Datenverlust aktualisiert werden kann
Im Gegensatz zu anderen Vorabprüfungen kann sie je nach `check table`-Ausgabe einen Fehler, eine Warnung oder einen Hinweis zurückgeben. Wenn diese Vorabprüfung Tabellen zurückgibt, überprüfen Sie diese zusammen mit dem Rückgabecode und der Meldung sorgfältig, bevor Sie das Upgrade starten. Weitere Informationen finden Sie unter [CHECK-TABLE-Anweisung](https://dev.mysql.com/doc/refman/5.7/en/check-table.html) in der MySQL-Dokumentation.  
Hier finden Sie ein Beispiel für einen Fehler und eine Warnung.  
**Beispiel für einen Fehler:**  

```
{
  "id": "checkTableOutput",
  "title": "Issues reported by 'check table x for upgrade' command",
  "status": "OK",
  "detectedProblems": [
      {
        "level": "Error",
        "dbObject": "test.parent",
        "description": "Table 'test.parent' doesn't exist"
      }
  ]
},
```
Die Vorabprüfung meldet einen Fehler, der besagt, dass die Tabelle `test.parent` nicht existiert.  
Die `mysql-error.log`-Datei für die Schreiber-DB-Instance zeigt, dass ein Fremdschlüsselfehler vorliegt.  

```
2024-08-13T15:32:10.676893Z 62 [Warning] InnoDB: Load table `test`.`parent` failed, the table has missing foreign key indexes. Turn off 'foreign_key_checks' and try again.
2024-08-13T15:32:10.676905Z 62 [Warning] InnoDB: Cannot open table test/parent from the internal data dictionary of InnoDB though the .frm file for the table exists.
Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
```
Melden Sie sich bei der Schreiber-DB-Instance an und führen Sie `show engine innodb status\G` aus, um weitere Informationen zum Fremdschlüsselfehler zu erhalten.  

```
mysql> show engine innodb status\G
*************************** 1. row ***************************
  Type: InnoDB
  Name:
Status:
=====================================
2024-08-13 15:33:33 0x14ef7b8a1700 INNODB MONITOR OUTPUT
=====================================
.
.
.
------------------------
LATEST FOREIGN KEY ERROR
------------------------
2024-08-13 15:32:10 0x14ef6dbbb700 Error in foreign key constraint of table test/child:
there is no index in referenced table which would contain
the columns as the first columns, or the data types in the
referenced table do not match the ones in table. Constraint:
,
  CONSTRAINT `fk_pname` FOREIGN KEY (`p_name`) REFERENCES `parent` (`name`)
The index in the foreign key in table is p_name_idx
Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-foreign-key-constraints.html for correct foreign key definition.
.
.
```
Die `LATEST FOREIGN KEY ERROR`-Meldung gibt an, dass die `fk_pname`-Fremdschlüsseleinschränkung in der Tabelle `test.child`, die auf die Tabelle `test.parent` verweist, entweder einen fehlenden Index oder einen Datentypkonflikt aufweist. Die MySQL-Dokumentation zu [Fremdschlüsseleinschränkungen](https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html) besagt, dass Spalten, auf die in einem Fremdschlüssel verwiesen wird, einen zugehörigen Index haben müssen und dass die übergeordneten/untergeordneten Spalten denselben Datentyp verwenden müssen.  
Wenn Sie überprüfen möchten, ob dies mit einem fehlenden Index oder einer Nichtübereinstimmung des Datentyps zusammenhängt, melden Sie sich bei der Datenbank an und überprüfen Sie die Tabellendefinitionen, indem Sie vorübergehend die Sitzungsvariable [foreign\$1key\$1checks](https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html#foreign-key-checks) deaktivieren. Danach können wir sehen, dass die fragliche untergeordnete Einschränkung (`fk_pname`) `p_name varchar(20) CHARACTER SET latin1 DEFAULT NULL` verwendet, um auf die übergeordnete Tabelle `name varchar(20) NOT NULL` zu verweisen. Die übergeordnete Tabelle verwendet `DEFAULT CHARSET=utf8`, aber die Spalte `p_name` der untergeordneten Tabelle verwendet `latin1`, sodass der Fehler wegen fehlender Datentypübereinstimmung ausgelöst wird.  

```
mysql> show create table parent\G
ERROR 1146 (42S02): Table 'test.parent' doesn't exist

mysql> show create table child\G
*************************** 1. row ***************************
       Table: child
Create Table: CREATE TABLE `child` (
  `id` int(11) NOT NULL,
  `p_name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `p_name_idx` (`p_name`),
  CONSTRAINT `fk_pname` FOREIGN KEY (`p_name`) REFERENCES `parent` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> set foreign_key_checks=0;
Query OK, 0 rows affected (0.00 sec)

mysql> show create table parent\G
*************************** 1. row ***************************
       Table: parent
Create Table: CREATE TABLE `parent` (
  `name` varchar(20) NOT NULL,
  PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> show create table child\G
*************************** 1. row ***************************
       Table: child
Create Table: CREATE TABLE `child` (
  `id` int(11) NOT NULL,
  `p_name` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `p_name_idx` (`p_name`),
  CONSTRAINT `fk_pname` FOREIGN KEY (`p_name`) REFERENCES `parent` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
```
Zum Beheben dieses Problems können wir entweder die untergeordnete Tabelle so ändern, dass sie denselben Zeichensatz wie die übergeordnete Tabelle verwendet, oder die übergeordnete Tabelle so ändern, dass sie denselben Zeichensatz wie die untergeordnete Tabelle verwendet. Da die untergeordnete Tabelle hier explizit `latin1` in der `p_name`-Spaltendefinition verwendet, führen wir `ALTER TABLE` aus, um den Zeichensatz in `utf8` zu ändern.  

```
mysql> alter table child modify p_name varchar(20) character set utf8 DEFAULT NULL;
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> flush tables;
Query OK, 0 rows affected (0.01 sec)
```
Danach ist die Vorabprüfung erfolgreich und das Upgrade kann fortgesetzt werden.  
**Beispiel für eine Warnung:**  

```
{
  "id": "checkTableOutput",
  "title": "Issues reported by 'check table x for upgrade' command",
  "status": "OK",
  "detectedProblems": [
      {
        "level": "Warning",
        "dbObject": "test.orders",
        "description": "Trigger test.orders.delete_audit_trigg does not have CREATED attribute."
      }
  ]
}
```
Die Vorabprüfung meldet eine Warnung für den Trigger `delete_audit_trigg` in der Tabelle `test.orders`, da er kein `CREATED`-Attribut aufweist. Laut [Überprüfen der Versionskompatibilität](https://dev.mysql.com/doc/refman/5.7/en/check-table.html#check-table-version-compatibility) in der MySQL-Dokumentation ist diese Meldung informativ und wird für Trigger angezeigt, die vor MySQL 5.7.2 erstellt wurden.  
Da es sich um eine Warnung handelt, verhindert sie nicht, dass das Upgrade fortgesetzt wird. Wenn Sie das Problem jedoch beheben möchten, können Sie den fraglichen Trigger neu erstellen und die Vorabprüfung ist ohne Warnungen erfolgreich.  

```
{
  "id": "checkTableOutput",
  "title": "Issues reported by 'check table x for upgrade' command",
  "status": "OK",
  "detectedProblems": []
},
```

# Erläuterung der Durchführung eines direkten Upgrades
<a name="AuroraMySQL.Upgrading.Procedure"></a>

Sehen Sie sich die Hintergrundinformationen unter [Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence) an.

Führen Sie alle Planungen und Tests vor dem Upgrade durch, wie unter [Planen eines Hauptversionsupgrades für einen Aurora MySQL-Cluster](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning) beschrieben.

## Konsole
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CON"></a>

Im folgenden Beispiel wird der `mydbcluster-cluster`-DB-Cluster auf Aurora-MySQL-Version 3.04.1 aktualisiert.

**Aktualisieren der Hauptversion eines Aurora MySQL-DB-Clusters**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon-RDS-Konsole unter [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Wenn Sie eine benutzerdefinierte Parametergruppe für den ursprünglichen DB-Cluster verwendet haben, erstellen Sie eine entsprechende Parametergruppe, die mit der neuen Hauptversion kompatibel ist. Nehmen Sie alle erforderlichen Anpassungen an den Konfigurationsparametern in dieser neuen Parametergruppe vor. Weitere Informationen finden Sie unter [Wie sich direkte Upgrades auf die Parametergruppen für einen Cluster auswirken](#AuroraMySQL.Upgrading.ParamGroups).

1.  Wählen Sie im Navigationsbereich **Databases (Datenbanken)** aus. 

1.  Wählen Sie den DB-Cluster aus, den Sie ändern möchten. 

1.  Wählen Sie **Ändern** aus. 

1.  Wählen Sie unter **Version** eine neue Aurora-MySQL-Hauptversion aus.

   Wir empfehlen im Allgemeinen, die neueste Nebenversion der Hauptversion zu verwenden. Hier wählen wir die aktuelle Standardversion.  
![\[Direktes Upgrade eines DB-Clusters von Aurora MySQL von Version 2 auf Version 3\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/images/ams-upgrade-v2-v3.png)

1.  Klicken Sie auf **Weiter**. 

1.  Geben Sie auf der nächsten Seite an, wann das Upgrade durchgeführt werden soll. Wählen Sie **During the next scheduled maintenance window (Während des nächsten geplanten Wartungsfensters)** oder **Sofort** aus. 

1.  (Optional) Überprüfen Sie während des Upgrades regelmäßig die Seite **Ereignisse** in der RDS-Konsole. Auf diese Weise können Sie den Fortschritt des Upgrades überwachen und etwaige Probleme erkennen. Wenn das Upgrade auf Probleme stößt, lesen Sie [Problembehandlung für Aurora MySQL direkte Upgrades](AuroraMySQL.Upgrading.Troubleshooting.md) für zu ergreifende Schritte. 

1. Wenn Sie zu Beginn dieses Vorgangs eine neue Parametergruppe erstellt haben, ordnen Sie die benutzerdefinierte Parametergruppe Ihrem aktualisierten Cluster zu. Weitere Informationen finden Sie unter [Wie sich direkte Upgrades auf die Parametergruppen für einen Cluster auswirken](#AuroraMySQL.Upgrading.ParamGroups).
**Anmerkung**  
 Wenn Sie diesen Schritt ausführen, müssen Sie den Cluster erneut neu starten, um die neue Parametergruppe anzuwenden. 

1.  (Optional) Löschen Sie nach dem Upgrade den manuellen Snapshot, den Aurora zu Beginn des Upgrades erstellt hat. 

## AWS CLI
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CLI"></a>

Um die Hauptversion eines Aurora-MySQL-DB-Clusters zu aktualisieren, verwenden Sie den AWS CLI-Befehl [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) mit den folgenden erforderlichen Parametern:
+ `--db-cluster-identifier`
+ `--engine-version`
+ `--allow-major-version-upgrade`
+  `--apply-immediately` oder `--no-apply-immediately`

Wenn Ihr Cluster benutzerdefinierte Parametergruppen verwendet, schließen Sie auch eine oder beide der folgenden Optionen ein:
+ `--db-cluster-parameter-group-name`, wenn der Cluster eine benutzerdefinierte Cluster-Parametergruppe verwendet
+ `--db-instance-parameter-group-name`, falls Instances im Cluster eine benutzerdefinierte DB-Parametergruppe verwenden

Im folgenden Beispiel wird der `sample-cluster`-DB-Cluster auf Aurora-MySQL-Version 3.04.1 aktualisiert. Das Upgrade erfolgt sofort, anstatt auf das nächste Wartungsfenster zu warten.

**Example**  
Für Linux, macOS oder Unix:  

```
aws rds modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --engine-version 8.0.mysql_aurora.3.04.1 \
          --allow-major-version-upgrade \
          --apply-immediately
```
Für Windows:  

```
aws rds modify-db-cluster ^
          --db-cluster-identifier sample-cluster ^
          --engine-version 8.0.mysql_aurora.3.04.1 ^
          --allow-major-version-upgrade ^
          --apply-immediately
```
Sie können andere CLI-Befehle mit `modify-db-cluster` kombinieren, um einen automatisierten End-to-End-Prozess zum Durchführen und Überprüfen von Upgrades zu erstellen. Weitere Informationen und Beispiele finden Sie unter [Aurora MySQL direktes Upgrade](AuroraMySQL.Upgrading.Tutorial.md).

**Anmerkung**  
Wenn Ihr Cluster Teil einer Aurora globalen Datenbank ist, unterscheidet sich das Verfahren des direkten Upgrades geringfügig. Sie rufen die Befehlsoperation [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) statt `modify-db-cluster` auf. Weitere Informationen finden Sie unter [In-Situ-Hauptversions-Upgrades für globale Datenbanken](#AuroraMySQL.Upgrading.GlobalDB).

## RDS-API
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.API"></a>

Verwenden Sie zum Aktualisieren der Hauptversion eines DB-Clusters von Aurora MySQL die RDS-API-Operation [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) mit den folgenden erforderlichen Parametern:
+ `DBClusterIdentifier`
+ `Engine`
+ `EngineVersion`
+ `AllowMajorVersionUpgrade`
+ `ApplyImmediately` (festgelegt auf `true` oder `false`)

**Anmerkung**  
Wenn Ihr Cluster Teil einer Aurora globalen Datenbank ist, unterscheidet sich das Verfahren des direkten Upgrades geringfügig. Sie rufen den Vorgang [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalClusterParameterGroup.html) statt `ModifyDBCluster` auf. Weitere Informationen finden Sie unter [In-Situ-Hauptversions-Upgrades für globale Datenbanken](#AuroraMySQL.Upgrading.GlobalDB).

## Wie sich direkte Upgrades auf die Parametergruppen für einen Cluster auswirken
<a name="AuroraMySQL.Upgrading.ParamGroups"></a>

Aurora-Parametergruppen haben verschiedene Sätze von Konfigurationseinstellungen für Cluster, die mit MySQL 5.7 oder 8.0 kompatibel sind. Wenn Sie ein direktes Upgrade durchführen, müssen der aktualisierte Cluster und alle seine Instances die entsprechenden Cluster- und Instance-Parametergruppen verwenden:

Ihr Cluster und Ihre Instances verwenden möglicherweise die standardmäßigen 5.7-kompatiblen Parametergruppen. In diesem Fall beginnen der aktualisierte Cluster und die Instance mit den standardmäßigen 8.0-kompatiblen Parametergruppen. Wenn Ihr Cluster und Ihre Instances benutzerdefinierte Parametergruppen verwenden, müssen Sie entsprechende oder 8.0-kompatible Parametergruppen erstellen. Diese müssen während des Upgrade-Vorgangs angegeben werden.

**Anmerkung**  
Für die meisten Parametereinstellungen können Sie die benutzerdefinierte Parametergruppe an zwei Stellen auswählen. Und zwar können Sie sie auswählen, wenn Sie den Cluster erstellen oder wenn Sie die Parametergruppe später dem Cluster zuordnen.  
Wenn Sie jedoch eine nicht standardmäßige Einstellung für den Parameter `lower_case_table_names` verwenden, müssen Sie die benutzerdefinierte Parametergruppe mit dieser Einstellung im Voraus einrichten. Geben Sie dann die Parametergruppe an, wenn Sie die Snapshot-Wiederherstellung zum Erstellen des Clusters durchführen. Änderungen des `lower_case_table_names`-Parameters haben keine Auswirkung, nachdem der Cluster erstellt wurde.  
Wir empfehlen Ihnen, die gleiche Einstellung für `lower_case_table_names` zu verwenden, wenn Sie ein Upgrade von Aurora MySQL Version 2 auf Version 3 durchführen.  
Bei einer globalen Aurora-Datenbank, die auf Aurora MySQL basiert, können Sie ein direktes Upgrade von Aurora-MySQL-Version 2 auf Version 3 nur durchführen, wenn Sie den `lower_case_table_names`-Parameter auf den Standardwert setzen und Ihre globale Datenbank neu starten. Weitere Informationen zu den möglichen Verfahren finden Sie unter [Hauptversions-Upgrades](aurora-global-database-upgrade.md#aurora-global-database-upgrade.major).

## Änderungen an Cluster-Eigenschaften zwischen Aurora-MySQL-Versionen
<a name="AuroraMySQL.Upgrading.Attrs"></a>

Wenn Sie von Aurora-MySQL-Version 2 zu Version 3 aktualisieren, stellen Sie sicher, dass Sie alle Anwendungen oder Skripts ändern, die Sie zum Einrichten oder Verwalten von Clustern und DB-Instances von Aurora MySQL verwenden.

Ändern Sie außerdem Ihren Code, der Parametergruppen manipuliert, um der Tatsache Rechnung zu tragen, dass die Standardnamen der Parametergruppen für 5.7- und 8.0-kompatible Cluster unterschiedlich sind. Die entsprechenden Parametergruppennamen für Aurora-MySQL-Version 2 und 3-Cluster sind `default.aurora-mysql5.7` und `default.aurora-mysql8.0`.

Beispielsweise haben Sie möglicherweise Code wie den folgenden, der vor einem Upgrade für Ihren Cluster gilt.

```
# Check the default parameter values for MySQL 5.7–compatible clusters.
aws rds describe-db-parameters --db-parameter-group-name default.aurora-mysql5.7 --region us-east-1
```

 Ändern Sie nach dem Upgrade der Hauptversion des Clusters diesen Code wie folgt.

```
# Check the default parameter values for MySQL 8.0–compatible clusters.
aws rds describe-db-parameters --db-parameter-group-name default.aurora-mysql8.0 --region us-east-1
```

## In-Situ-Hauptversions-Upgrades für globale Datenbanken
<a name="AuroraMySQL.Upgrading.GlobalDB"></a>

 Bei einer globalen Aurora-Datenbank aktualisieren Sie den globalen Datenbank-Cluster. Aurora aktualisiert automatisch alle Cluster gleichzeitig und stellt sicher, dass sie alle dieselbe Engine-Version ausführen. Diese Anforderung liegt darin begründet, dass Änderungen an Systemtabellen, Datendateiformaten usw. automatisch auf alle sekundären Cluster repliziert werden. 

Folgen Sie den Anweisungen in [Funktionsweise des Aurora MySQL direkten Upgrade der Hauptversion](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence). Wenn Sie angeben, was aktualisiert werden soll, stellen Sie sicher, dass Sie den globalen Datenbank-Cluster anstelle eines der darin enthaltenen Cluster auswählen.

Wenn Sie die AWS-Managementkonsole verwenden, wählen Sie das Element mit der Rolle **Global database** (Globale Datenbank) aus.

![\[Aktualisieren globaler Datenbank-Cluster\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-databases-major-upgrade-global-cluster.png)


 Wenn Sie die AWS CLI oder die RDS-API verwenden, starten Sie den Upgrade-Prozess, indem Sie den Befehl [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) oder die Operation [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalCluster.html) aufrufen. Verwenden Sie diese anstelle von `modify-db-cluster` oder `ModifyDBCluster`.

**Anmerkung**  
Sie können keine benutzerdefinierte Parametergruppe für den globalen Datenbank-Cluster angeben, während Sie ein größeres Versions-Upgrade dieser globalen Aurora-Datenbank durchführen. Erstellen Sie Ihre benutzerdefinierten Parametergruppen in jeder Region des globalen Clusters. Wenden Sie sie nach dem Upgrade manuell auf die regionalen Cluster an.

 Um die Hauptversion eines globalen Datenbank-Clusters von Aurora MySQL mithilfe der AWS CLI zu aktualisieren, verwenden Sie den Befehl [modify-gobal-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) mit den folgenden erforderlichen Parametern: 
+  `--global-cluster-identifier` 
+  `--engine aurora-mysql` 
+  `--engine-version` 
+  `--allow-major-version-upgrade` 

Im folgenden Beispiel wird der globale Datenbank-Cluster auf Aurora-MySQL-Version 3.04.2 aktualisiert.

**Example**  
Für Linux, macOS oder Unix:  

```
aws rds modify-global-cluster \
          --global-cluster-identifier global_cluster_identifier \
          --engine aurora-mysql \
          --engine-version 8.0.mysql_aurora.3.04.2 \
          --allow-major-version-upgrade
```
Für Windows:  

```
aws rds modify-global-cluster ^
          --global-cluster-identifier global_cluster_identifier ^
          --engine aurora-mysql ^
          --engine-version 8.0.mysql_aurora.3.04.2 ^
          --allow-major-version-upgrade
```

## Direkte Upgrades für DB-Cluster mit regionsübergreifenden Lesereplikaten
<a name="AuroraMySQL.Upgrading.XRRR"></a>

Sie können einen Aurora-DB-Cluster, der über ein regionsübergreifendes Lesereplikat verfügt, mithilfe des direkten Upgrades aktualisieren, es gibt jedoch einige Überlegungen:
+ Sie müssen zuerst den Lesereplikat-DB-Cluster aktualisieren. Wenn Sie zuerst versuchen, den primären Cluster zu aktualisieren, erhalten Sie eine Fehlermeldung wie die folgende:

  Unable to upgrade DB cluster test-xr-primary-cluster because the associated Aurora cross-Region replica test-xr-replica-cluster isn't patched yet. Upgrade the Aurora cross-Region replica and try again.

  Das bedeutet, dass der primäre DB-Cluster keine höhere DB-Engine-Version als der Replikat-Cluster haben kann.
+ Bevor Sie den primären DB-Cluster aktualisieren, halten Sie den Schreib-Workload an und deaktivieren Sie alle neuen Verbindungsanfragen zur Schreiber-DB-Instance des primären Clusters.
+ Wenn Sie den primären Cluster aktualisieren, wählen Sie eine benutzerdefinierte DB-Cluster-Parametergruppe aus, bei der der `binlog_format`-Parameter auf einen Wert gesetzt ist, der die Replikation von Binärprotokollen unterstützt, z. B. `MIXED`.

  Weitere Informationen zur Verwendung der binären Protokollierung mit Aurora MySQL finden Sie unter [Replizieren zwischen Aurora und MySQL oder zwischen Aurora und einem anderen Aurora-DB-Cluster (binäre Protokollreplikation)](AuroraMySQL.Replication.MySQL.md). Weitere Informationen zum Ändern der Aurora MySQL-Konfigurationsparameter finden Sie unter [Aurora MySQL Konfigurationsparameter](AuroraMySQL.Reference.ParameterGroups.md) und [Parametergruppen für Amazon Aurora](USER_WorkingWithParamGroups.md).
+ Warten Sie nicht lange mit dem Upgrade des primären DB-Clusters, nachdem Sie den Replikat-Cluster aktualisiert haben. Wir empfehlen, nicht länger als bis zum nächsten Wartungszeitraum zu warten.
+ Starten Sie nach dem Upgrade des primären DB-Clusters dessen Schreiber-DB-Instance neu. Die benutzerdefinierte DB-Cluster-Parametergruppe, die die Binlog-Replikation aktiviert, wird erst wirksam, wenn die Schreiber-DB-Instance neu gestartet wird.
+ Nehmen Sie den Schreib-Workload erst wieder auf oder aktivieren Sie Verbindungen zur Schreiber-DB-Instance, wenn Sie bestätigt haben, dass die regionsübergreifende Replikation neu gestartet wurde und dass die Replikatverzögerung in der sekundären AWS-Region 0 ist.

# Aurora MySQL direktes Upgrade
<a name="AuroraMySQL.Upgrading.Tutorial"></a>

Die folgenden Linux-Beispiele zeigen, wie Sie die allgemeinen Schritte des Verfahrens für ein direktes Upgrade mit dem durchführen können AWS CLI.

In diesem ersten Beispiel wird ein Aurora-DB-Cluster erstellt, auf dem eine 2.x-Version von Aurora MySQL 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-Instance 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.11.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-MySQL-3.x-Versionen, auf die Sie den Cluster aktualisieren können, hängen von der 2.x-Version ab, auf der der Cluster derzeit läuft, sowie von der AWS-Region-Region, in der 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 an. 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.04.0 ein Hauptversion-Upgrade darstellt.

```
aws rds describe-db-clusters --db-cluster-identifier mynewdbcluster \
  --query '*[].{EngineVersion:EngineVersion}' --output text
5.7.mysql_aurora.2.11.2

aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.2 \
  --query '*[].[ValidUpgradeTarget]'
...
{
    "Engine": "aurora-mysql",
    "EngineVersion": "8.0.mysql_aurora.3.04.0",
    "Description": "Aurora MySQL 3.04.0 (compatible with MySQL 8.0.28)",
    "AutoUpgrade": false,
    "IsMajorVersionUpgrade": true,
    "SupportedEngineModes": [
        "provisioned"
    ],
    "SupportsParallelQuery": true,
    "SupportsGlobalDatabases": true,
    "SupportsBabelfish": false,
    "SupportsIntegrations": 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.11.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.04.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.04.0 --apply-immediately --allow-major-version-upgrade
{
  "DBClusterIdentifier": "mynewdbcluster",
  "Status": "available",
  "Engine": "aurora-mysql",
  "EngineVersion": "5.7.mysql_aurora.2.11.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.11.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.04.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-MySQL-Version 2.11.2 ausgeführt wurde. In der Ausgabe `describe-db-engine-versions` stellen die Werte `False` und `True` die Eigenschaft `IsMajorVersionUpgrade` dar. Ab Version 2.11.2 können Sie auf andere 2.\$1-Versionen aktualisieren. Diese Upgrades gelten nicht als Hauptversions-Upgrades und erfordern daher kein direktes Upgrade. Ein direktes Upgrade ist nur für die 3.\$1-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.11.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.11.3 False
5.7.mysql_aurora.2.11.4 False
5.7.mysql_aurora.2.11.5 False
5.7.mysql_aurora.2.11.6 False
5.7.mysql_aurora.2.12.0 False
5.7.mysql_aurora.2.12.1 False
5.7.mysql_aurora.2.12.2 False
5.7.mysql_aurora.2.12.3 False
8.0.mysql_aurora.3.04.0 True
8.0.mysql_aurora.3.04.1 True
8.0.mysql_aurora.3.04.2 True
8.0.mysql_aurora.3.04.3 True
8.0.mysql_aurora.3.05.2 True
8.0.mysql_aurora.3.06.0 True
8.0.mysql_aurora.3.06.1 True
8.0.mysql_aurora.3.07.1 True

aws rds modify-db-cluster --db-cluster-identifier mynewdbcluster \
  --engine-version 8.0.mysql_aurora.3.04.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 sind 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 `describe-events` standardmäßig nur Ereignisse der letzten Stunde ausgibt.

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

# Finden der Gründe für Fehler bei Hauptversion-Upgrades von Aurora MySQL
<a name="AuroraMySQL.Upgrading.failure-events"></a>

Im [Tutorial](AuroraMySQL.Upgrading.Tutorial.md) wurde das Upgrade von Aurora-MySQL-Version 2 auf Version 3 erfolgreich abgeschlossen. Wenn das Upgrade jedoch fehlgeschlagen wäre, würden Sie wissen wollen, warum.

Sie können damit beginnen, den AWS CLI-Befehl `describe-events` zu verwenden, um sich die DB-Cluster-Ereignisse anzusehen. Dieses Beispiel zeigt die Ereignisse für `mydbcluster` der letzten 10 Stunden.

```
aws rds describe-events \
    --source-type db-cluster \
    --source-identifier mydbcluster \
    --duration 600
```

In diesem Fall ist bei der Upgrade-Vorabprüfung ein Fehler aufgetreten.

```
{
    "Events": [
        {
            "SourceIdentifier": "mydbcluster",
            "SourceType": "db-cluster",
            "Message": "Database cluster engine version upgrade started.",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2024-04-11T13:23:22.846000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster"
        },
        {
            "SourceIdentifier": "mydbcluster",
            "SourceType": "db-cluster",
            "Message": "Database cluster is in a state that cannot be upgraded: Upgrade prechecks failed. For more details, see the  
             upgrade-prechecks.log file. For more information on troubleshooting the cause of the upgrade failure, see 
             https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html",
            "EventCategories": [
                "maintenance"
            ],
            "Date": "2024-04-11T13:23:24.373000+00:00",
            "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster"
        }
    ]
}
```

Um die genaue Ursache des Problems zu diagnostizieren, untersuchen Sie die Datenbankprotokolle für die Schreiber-DB-Instance. Wenn ein Upgrade auf Aurora-MySQL-Version 3 fehlschlägt, enthält die Schreiber-Instance eine Protokolldatei namens `upgrade-prechecks.log`. Dieses Beispiel zeigt, wie Sie das Vorhandensein dieses Protokolls erkennen und es dann zur Untersuchung in eine lokale Datei herunterladen.

```
aws rds describe-db-log-files --db-instance-identifier mydbcluster-instance \
    --query '*[].[LogFileName]' --output text

error/mysql-error-running.log
error/mysql-error-running.log.2024-04-11.20
error/mysql-error-running.log.2024-04-11.21
error/mysql-error.log
external/mysql-external.log
upgrade-prechecks.log

aws rds download-db-log-file-portion --db-instance-identifier mydbcluster-instance \
    --log-file-name upgrade-prechecks.log \
    --starting-token 0 \
    --output text >upgrade_prechecks.log
```

Die `upgrade-prechecks.log`-Datei befindet sich im JSON-Format. Wir laden sie mit der Option `--output text` herunter, um JSON-Output nicht in einem anderen JSON-Wrapper zu kodieren. Für Upgrades auf Aurora-MySQL-Version 3 enthält dieses Protokoll immer bestimmte Informations- und Warnmeldungen. Es enthält nur Fehlermeldungen, wenn das Upgrade fehlschlägt. Wenn das Upgrade erfolgreich ist, wird die Protokolldatei überhaupt nicht erstellt.

Um alle Fehler zusammenzufassen und die zugehörigen Objekt- und Beschreibungsfelder anzuzeigen, können Sie den Befehl `grep -A 2 '"level": "Error"'` für den Inhalt der `upgrade-prechecks.log`-Datei ausführen. Dadurch werden jede Fehlerzeile und die beiden Zeilen danach angezeigt. Diese enthalten den Namen des entsprechenden Datenbankobjekts und Anleitungen zur Behebung des Problems.

```
$ cat upgrade-prechecks.log | grep -A 2 '"level": "Error"'

"level": "Error",
"dbObject": "problematic_upgrade.dangling_fulltext_index",
"description": "Table `problematic_upgrade.dangling_fulltext_index` contains dangling FULLTEXT index. Kindly recreate the table before upgrade."
```

In diesem Beispiel können Sie den folgenden SQL-Befehl für die problematische Tabelle ausführen, um das Problem zu beheben, oder Sie können die Tabelle ohne den hängenden Index neu erstellen.

```
OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;
```

Versuchen Sie anschließend das Upgrade erneut.

# Problembehandlung für Aurora MySQL direkte Upgrades
<a name="AuroraMySQL.Upgrading.Troubleshooting"></a>

Verwenden Sie die folgenden Tipps, um Probleme mit direkten Aurora-MySQL-Upgrades zu beheben. Diese Tipps gelten nicht für Aurora Serverless-DB-Cluster.


| Grund für das abgebrochene oder langsame direkte Upgrade | Auswirkung | Lösung, die den Abschluss eines direkten Upgrades im Wartungsfenster ermöglicht | 
| --- | --- | --- | 
| Das zugehörige regionsübergreifende Aurora-Replikat wurde noch nicht gepatcht. | Aurora bricht das Upgrade ab. | Aktualisieren Sie das regionsübergreifende Aurora-Replikat und versuchen Sie es erneut. | 
| Der Cluster hat XA-Transaktionen im vorbereiteten Zustand | Aurora bricht das Upgrade ab. | Bestätigen Sie alle vorbereiteten XA-Transaktionen oder setzen Sie sie zurück. | 
| Der Cluster verarbeitet alle DDL-Anweisungen (Data Definition Language) | Aurora bricht das Upgrade ab. | Erwägen Sie, zu warten und das Upgrade durchzuführen, nachdem alle DDL-Anweisungen abgeschlossen sind. | 
| Der Cluster hat für viele Zeilen nicht festgeschriebene Änderungen | Das Upgrade könnte eine lange Zeit dauern. |  Der Upgrade-Prozess setzt die nicht festgeschriebenen Änderungen zurück. Der Indikator für diese Bedingung ist der Wert von `TRX_ROWS_MODIFIED` in der `INFORMATION_SCHEMA.INNODB_TRX`-Tabelle. Erwägen Sie, das Upgrade erst durchzuführen, nachdem alle großen Transaktionen festgeschrieben oder zurückgesetzt wurden.  | 
| Der Cluster hat eine hohe Anzahl von Undo-Datensätzen | Das Upgrade könnte eine lange Zeit dauern. |  Selbst wenn sich die nicht festgeschrieben Transaktionen nicht auf eine große Anzahl von Zeilen auswirken, können sie eine große Datenmenge beinhalten. Beispielsweise könnten Sie große BLOBs einfügen. Aurora erkennt oder generiert ein Ereignis für diese Art von Transaktionsaktivität nicht automatisch. Der Indikator für diese Bedingung ist die Länge der Verlaufsliste (History List Length, HLL). Der Upgrade-Prozess setzt die nicht festgeschriebenen Änderungen zurück. Sie können die HLL in der Ausgabe des SQL-Befehls `SHOW ENGINE INNODB STATUS` oder direkt mit der folgenden SQL-Abfrage überprüfen: <pre>SELECT count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';</pre> Sie können auch die Metrik `RollbackSegmentHistoryListLength` in Amazon CloudWatch überwachen. Erwägen Sie, das Upgrade erst durchzuführen, wenn die HLL kleiner ist.  | 
| Der Cluster ist dabei, eine große binäre Protokoll-Transaktion festzuschreiben | Das Upgrade könnte eine lange Zeit dauern. |  Der Upgrade-Prozess wartet, bis die binären Protokolländerungen angewendet werden. In diesem Zeitraum können mehr Transaktionen oder DDL-Anweisungen gestartet werden, was den Upgrade-Prozess weiter verlangsamt. Planen Sie den Upgrade-Prozess, wenn der Cluster nicht mit der Generierung von Änderungen der binären Protokollreplikation beschäftigt Aurora erkennt oder generiert ein Ereignis für diese Bedingung nicht automatisch.  | 
| Schemainkonsistenzen, die auf das Entfernen oder die Beschädigung von Dateien zurückzuführen sind | Aurora bricht das Upgrade ab. |  Ändern Sie die Standard-Speicher-Engine für temporäre Tabellen von MyISAM auf InnoDB. Führen Sie die folgenden Schritte aus: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html)  | 
| Der Master-Benutzer wurde gelöscht. | Aurora bricht das Upgrade ab. |   Löschen Sie den Master-Benutzer nicht.  Sollten Sie jedoch aus irgendeinem Grund den Master-Benutzer löschen, stellen Sie ihn mithilfe der folgenden SQL-Befehle wieder her: <pre>CREATE USER 'master_username'@'%' IDENTIFIED BY 'master_user_password' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;<br /><br />GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, <br />LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, <br />TRIGGER, LOAD FROM S3, SELECT INTO S3, INVOKE LAMBDA, INVOKE SAGEMAKER, INVOKE COMPREHEND ON *.* TO 'master_username'@'%' WITH GRANT OPTION;</pre>  | 

Weitere Informationen zur Behebung von Problemen, die dazu führen, dass Upgrade-Vorabprüfungen fehlschlagen, finden Sie in den folgenden Blogs:
+ [Checkliste für das Upgrade von Amazon-Aurora-MySQL-Version 2 (mit MySQL-5.7-Kompatibilität) auf Version 3 (mit MySQL-8.0-Kompatibilität), Teil 1](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-1/)
+ [Checkliste für das Upgrade von Amazon-Aurora-MySQL-Version 2 (mit MySQL-5.7-Kompatibilität) auf Version 3 (mit MySQL-8.0-Kompatibilität), Teil 2](https://aws.amazon.com/blogs/database/amazon-aurora-mysql-version-2-with-mysql-5-7-compatibility-to-version-3-with-mysql-8-0-compatibility-upgrade-checklist-part-2/)

 Sie können die folgenden Schritte verwenden, um eigene Überprüfungen für einige der Bedingungen in der vorherigen Tabelle durchzuführen. Auf diese Weise können Sie das Upgrade für einen Zeitpunkt planen, an dem Sie wissen, dass sich die Datenbank in einem Zustand befindet, in dem das Upgrade erfolgreich und schnell abgeschlossen werden kann. 
+  Sie können nach offenen XA-Transaktionen suchen, indem Sie die `XA RECOVER`-Anweisung ausführen. Sie können dann die XA-Transaktionen festschreiben oder zurücksetzen, bevor Sie mit dem Upgrade beginnen. 
+  Sie können nach DDL-Anweisungen suchen, indem Sie eine `SHOW PROCESSLIST` Anweisung ausführen und in der Ausgabe nach `CREATE`, `DROP`, `ALTER`, `RENAME` und `TRUNCATE` Anweisungen suchen. Warten Sie bis alle DDL-Anweisungen fertig sind, bevor Sie mit dem Upgrade beginnen. 
+  Sie können die Gesamtzahl der nicht festgeschriebenen Zeilen überprüfen, indem Sie die `INFORMATION_SCHEMA.INNODB_TRX`-Tabelle abfragen. Die Tabelle enthält eine Zeile für jede Transaktion. Die `TRX_ROWS_MODIFIED` Spalte enthält die Anzahl der Zeilen, die von der Transaktion geändert oder eingefügt wurden. 
+  Sie können die Länge der InnoDB-Verlaufsliste überprüfen, indem Sie die `SHOW ENGINE INNODB STATUS SQL`-Anweisung ausführen und nach `History list length` in der Ausgabe suchen. Sie können den Wert auch direkt überprüfen, indem Sie die folgende Abfrage ausführen: 

  ```
  SELECT count FROM information_schema.innodb_metrics WHERE name = 'trx_rseg_history_len';
  ```

   Die Länge der Verlaufsliste entspricht der Menge der Undo-Daten, die von der Datenbank gespeichert werden, um die Multi-Versions-Concurrency Control (MVCC) zu implementieren. 

# Bereinigung nach dem Upgrade für Aurora MySQL Version 3
<a name="AuroraMySQL.mysql80-post-upgrade"></a>

Nachdem Sie ein Upgrade von Aurora-MySQL-Clustern der 2 auf Aurora-MySQL-Version 3 abgeschlossen haben, können Sie diese anderen Bereinigungsaktionen ausführen:
+ Erstellen Sie neue MySQL 8.0-kompatible Versionen beliebiger benutzerdefinierter Parametergruppen. Wenden Sie alle erforderlichen benutzerdefinierten Parameterwerte auf die neuen Parametergruppen an.
+ Aktualisieren Sie alle CloudWatch-Alarme, Setup-Skripte usw., um die neuen Namen für alle Metriken zu verwenden, deren Namen von inklusiven Sprachänderungen betroffen waren. Eine Liste der -Metriken finden Sie unter [Inklusive Sprachänderungen für Aurora MySQL Version 3](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.8.0-inclusive-language).
+ Aktualisieren Sie alleCloudFormationVorlagen, um die neuen Namen für alle Konfigurationsparameter zu verwenden, deren Namen von inklusiven Sprachänderungen betroffen waren. Eine vollständige Liste der Parameter finden Sie unter [Inklusive Sprachänderungen für Aurora MySQL Version 3](AuroraMySQL.Compare-v2-v3.md#AuroraMySQL.8.0-inclusive-language).

## SPATIAL-Index
<a name="AuroraMySQL.mysql80-spatial"></a>

Überprüfen Sie nach dem Upgrade auf Aurora MySQL Version 3, ob Sie Objekte und Indizes im Zusammenhang mit räumlichen Indizes löschen oder neu erstellen müssen. Vor MySQL 8.0 konnte Aurora räumliche Abfragen mithilfe von Indizes optimieren, die keinen räumlichen Ressourcenbezeichner (SRID) enthielten. Aurora MySQL Version 3 verwendet nur räumliche Indizes, die SRIDs enthalten. Während eines Upgrades legt Aurora automatisch alle räumlichen Indizes ohne SRIDs ab und gibt Warnmeldungen im Datenbankprotokoll aus. Wenn Sie solche Warnmeldungen beobachten, erstellen Sie nach dem Upgrade neue räumliche Indizes mit SRIDs. Weitere Informationen zu Änderungen an räumlichen Funktionen und Datentypen in MySQL 8.0 finden Sie unter [Änderungen in MySQL 8.0](https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html) im *MySQL-Referenzhandbuch*.

# Datenbank-Engine-Updates und -Korrekturen für Amazon Aurora MySQL
<a name="AuroraMySQL.Updates.RN"></a>

In den *Versionshinweisen für Amazon Aurora MySQL-Compatible Edition* finden Sie folgende Informationen:
+ [Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html)
+ [Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.20Updates.html)
+ [Aktualisierungen der Datenbank-Engine für Amazon-Aurora-MySQL-Version 1 (veraltet)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.11Updates.html)
+ [MySQL-Bugfixes durch Updates der Datenbank-Engine von Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.MySQLBugs.html)
+ [In Amazon Aurora MySQL behobene Sicherheitsschwachstellen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.CVE_list.html)