Migrieren eines RDS für MySQL-Snapshots zu Aurora - Amazon Aurora

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

Migrieren eines RDS für MySQL-Snapshots zu Aurora

Sie können einen DB-Snapshot einer RDS-MySQL-DB-Instance migrieren, um einen Aurora-MySQL-DB-Cluster zu erstellen. Der neue Aurora-MySQL-DB-Cluster wird mit den Daten der ursprünglichen RDS für MySQL-DB-Instance gefüllt. Der DB-Snapshot muss von einer DB-Instance von Amazon RDS erstellt worden sein, die eine mit Aurora MySQL kompatible MySQL-Version ausführt.

Sie können einen manuell oder automatisch erstellten DB-Snapshot migrieren. Nachdem der DB-Cluster erstellt wurde, können Sie optional Aurora-Replikate erstellen.

Anmerkung

Sie können eine MySQL-DB-Instance zu einem Aurora MySQL-DB-Cluster auch migrieren, indem Sie zunächst eine Aurora Read Replica der MySQL-Quell-DB-Instance erstellen. Weitere Informationen finden Sie unter Migrieren von Daten von einer RDS for My SQL DB-Instance zu einem Amazon Aurora My SQL DB-Cluster mithilfe einer Aurora-Read Replica.

Sie können von einigen älteren Versionen von MySQL 8.0, einschließlich 8.0.11, 8.0.13 und 8.0.15, nicht zu Aurora MySQL Version 3.05 und höher migrieren. Wir empfehlen, vor der Migration auf MySQL Version 8.0.28 zu aktualisieren.

Gehen Sie wie folgt vor:

  1. Bestimmen Sie die Menge an Speicher, die für den Aurora MySQL-DB-Cluster bereitgestellt werden soll. Weitere Informationen finden Sie unter Wie viel Speicherplatz benötige ich?

  2. Verwenden Sie die Konsole zum Erstellen des Snapshots in der AWS-Region, in der sich die Amazon-RDS-MySQL-Instance befindet. Informationen zum Erstellen von DB-Snapshots finden Sie unter Erstellen eines DB-Snapshots.

  3. Wenn sich der DB-Snapshot nicht in derselben AWS-Region wie der DB-Cluster befindet, kopieren Sie ihn mit der Amazon-RDS-Konsole in diese AWS-Region. Informationen zum Kopieren von DB-Snapshots finden Sie unter Kopieren eines DB-Snapshots.

  4. Verwenden Sie die Konsole, um den DB-Snapshot zu migrieren und einen Aurora MySQL-DB-Cluster mit denselben Datenbanken wie die ursprüngliche MySQL-DB-Instance zu erstellen.

Warnung

Amazon RDS beschränkt jedes AWS-Konto auf jeweils eine Snapshot-Kopie in jede AWS-Region.

Wie viel Speicherplatz benötige ich?

Wenn Sie den Snapshot einer MySQL-DB-Instance zu einem Aurora MySQL-DB-Cluster migrieren, verwendet Aurora ein Amazon Elastic Block Store (Amazon EBS)-Volume, um die Daten aus dem Snapshot vor der Migration zu formatieren. In manchen Fällen ist zusätzlicher Speicherplatz erforderlich, um die Daten für die Migration zu formatieren.

Tabellen, die keine MyISAM-Tabellen und nicht komprimiert sind, können bis zu 16 TB groß sein. Wenn Sie MyISAM-Tabellen besitzen, muss Aurora zusätzlichen Speicherplatz im Volume verwenden, um die Tabellen so zu konvertieren, dass sie mit Aurora MySQL kompatibel sind. Wenn Sie komprimierte Tabellen besitzen, muss Aurora zusätzlichen Speicherplatz im Volume verwenden, um diese Tabellen zu erweitern, bevor sie im Aurora-Cluster-Volume gespeichert werden. Aufgrund dieses zusätzlichen Platzbedarfs sollten Sie sicherstellen, dass keine der MyISAM-Tabellen und der komprimierten Tabellen, die von Ihrer MySQL-DB-Instance migriert werden, die Größe von 8 TB übersteigt.

Reduzieren des erforderlichen Speicherplatzes für die Migration von Daten zu Amazon Aurora MySQL

Sie können bei Bedarf das Datenbankschema vor dem Migrieren nach Amazon Aurora ändern. Eine solche Änderung kann in den folgenden Fällen hilfreich sein:

  • Sie möchten die Migration beschleunigen.

  • Sie wissen nicht genau, wie viel Speicherplatz bereitgestellt werden muss.

  • Ein Migrationsversuch ist fehlgeschlagen, weil nicht genügend Speicherplatz verfügbar war.

Sie können die folgenden Änderungen vornehmen, um das Migrieren einer Datenbank zu Amazon Aurora zu optimieren.

Wichtig

Führen Sie diese Aktualisierungen für die neue DB-Instance durch, die aus einem Snapshot einer Produktionsdatenbank wiederhergestellt wurde, statt eine Produktions-Instance zu verwenden. Anschließend können Sie die Daten aus dem Snapshot der neuen DB-Instance in den Aurora-DB-Cluster migrieren, um Service-Unterbrechungen bei der Produktionsdatenbank zu vermeiden.

Tabellentyp Einschränkung oder Richtlinie

MyISAM-Tabellen

Aurora MySQL unterstützt ausschließlich InnoDB-Tabellen. Wenn die Datenbank MyISAM-Tabellen enthält, müssen diese vor der Migration nach Aurora MySQL konvertiert werden. Während der Migration wird für die Konvertierung von MyISAM nach InnoDB zusätzlicher Speicherplatz benötigt.

Um das Risiko zu senken, dass der Speicherplatz nicht ausreicht, oder um den Migrationsvorgang zu beschleunigen, wandeln Sie alle MyISAM-Tabellen vor der Migration in InnoDB-Tabellen um. Die Größe der resultierenden InnoDB-Tabelle entspricht den Größenanforderungen von Aurora MySQL für diese Tabelle. Führen Sie zum Umwandeln einer MyISAM-Tabelle in eine InnoDB-Tabelle den folgenden Befehl aus:

alter table <schema>.<table_name> engine=innodb, algorithm=copy;

Komprimierte Tabellen

Aurora MySQL unterstützt keine komprimierten Tabellen (d. h. mit erstellte Tabelle ROW_FORMAT=COMPRESSED).

Um das Risiko zu senken, dass der Speicherplatz nicht ausreicht, oder um den Migrationsvorgang zu beschleunigen, erweitern Sie komprimierte Tabellen, indem Sie ROW_FORMAT auf DEFAULT, COMPACT, DYNAMIC oder REDUNDANT einstellen. Weitere Informationen finden Sie unter InnoDB row formats in der MySQL-Dokumentation.

Sie können mit dem folgenden SQL-Skript alle Datenbanktabellen der MySQL-DB-Instance auflisten, die MyISAM-Tabellen oder komprimierte Tabellen sind.

-- This script examines a MySQL database for conditions that block -- migrating the database into Amazon Aurora. -- It needs to be run from an account that has read permission for the -- INFORMATION_SCHEMA database. -- Verify that this is a supported version of MySQL. select msg as `==> Checking current version of MySQL.` from ( select 'This script should be run on MySQL version 5.6 or higher. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * 100 + cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as T where major_minor <> 506; -- List MyISAM and compressed tables. Include the table size. select concat(TABLE_SCHEMA, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`, round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)" from INFORMATION_SCHEMA.TABLES where ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' );

Das Skript produziert eine Ausgabe wie im folgenden Beispiel. Das Beispiel zeigt zwei Tabellen, die vom MyISAM- in das InnoDB-Format umgewandelt werden müssen. Außerdem wird die ungefähre Größe jeder Tabelle in Megabyte (MB) angezeigt.

+---------------------------------+------------------+ | ==> MyISAM or Compressed Tables | Approx size (MB) | +---------------------------------+------------------+ | test.name_table | 2102.25 | | test.my_table | 65.25 | +---------------------------------+------------------+ 2 rows in set (0.01 sec)

Migrieren eines DB-Snapshots von RDS for MySQL zu einem Aurora-MySQL-DB-Cluster

Sie können einen DB-Snapshot einer DB-Instance von RDS for MySQL mit der AWS Management Console oder der AWS CLI migrieren, um einen Aurora-MySQL-DB-Cluster zu erstellen. Der neue Aurora-MySQL-DB-Cluster wird mit den Daten der ursprünglichen RDS für MySQL-DB-Instance gefüllt. Informationen zum Erstellen von DB-Snapshots finden Sie unter Erstellen eines DB-Snapshots.

Wenn sich der DB-Snapshot nicht in der AWS-Region befindet, in der Sie die Daten speichern möchten, kopieren Sie den DB-Snapshot in die betreffende AWS-Region. Informationen zum Kopieren von DB-Snapshots finden Sie unter Kopieren eines DB-Snapshots.

Wenn Sie den DB-Snapshot mithilfe der AWS Management Console migrieren, nimmt die Konsole die erforderlichen Aktionen vor, um den DB-Cluster und die primäre Instance zu erstellen.

Sie können sich auch dafür entscheiden, dass Ihr neuer Aurora MySQL DB-Cluster im Ruhezustand verschlüsselt wird, indem Sie eine AWS KMS key.

So migrieren Sie einen MySQL -DB-Snapshot mithilfe der AWS Management Console:
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon-RDS-Konsole unter https://console.aws.amazon.com/rds/.

  2. Starten Sie die Migration entweder von der MySQL DB-Instance oder vom Snapshot aus:

    Um die Migration von der DB-Instance aus zu starten:

    1. Wählen Sie im Navigationsbereich Databases (Datenbanken) und anschließend die MySQL-DB-Instance aus.

    2. Wählen Sie unter Actions (Aktionen) die Option Migrate latest snapshot (Aktuellen Snapshot migrieren) aus.

    Um die Migration vom Snapshot aus zu starten:

    1. Klicken Sie auf Snapshots (Snapshots).

    2. Wählen Sie auf der Seite Snapshots (Snapshots) den Snapshot aus, den Sie zu einem Aurora MySQL-DB-Cluster migrieren möchten.

    3. Wählen Sie die Option Snapshot-Aktionen und anschließend Snapshot migrieren.

    Die Seite Datenbank migrieren wird angezeigt.

  3. Legen Sie auf der Seite Migrate Database (Datenbank migrieren) Folgendes fest:

    • Migrate to DB Engine (Zu DB-Engine migrieren): Wählen Sie aurora aus.

    • DB Engine Version (DB-Engine-Version): Wählen Sie die DB-Engine-Version für das Aurora MySQL-DB-Cluster aus.

    • DB-Instance-Klasse: Wählen Sie eine DB-Instance-Klasse, die über ausreichend Speicher und Kapazität für Ihre Datenbank verfügt, z. B. db.r3.large. Aurora-Cluster-Volumes nehmen automatisch an Größe zu, wenn die Datenmenge in Ihrer Datenbank zunimmt. Ein Aurora-Cluster-Volume kann auf eine maximale Größe von 128 tebibytes (TiB) anwachsen. Sie müssen daher nur eine DB-Instance-Klasse auswählen, die den aktuellen Speicheranforderungen entspricht. Weitere Informationen finden Sie unter Übersicht über Amazon-Aurora-Speicher.

    • DB Instance Identifier (DB-Instance-Kennung): Geben Sie einen Namen für den DB-Cluster ein. Dieser muss im Konto für die ausgewählte AWS-Region eindeutig sein. Dieser Bezeichner wird in den Endpunktadressen für die Instances im DB-Cluster verwendet. Sie können den Namen aussagekräftiger machen, indem Sie Angaben wie AWS-Region und DB-Engine hinzufügen, z. B. aurora-cluster1.

      Für den DB-Instance-Bezeichner gelten folgende Einschränkungen:

      • Sie darf 1 bis 63 alphanumerische Zeichen oder Bindestriche enthalten.

      • Das erste Zeichen muss ein Buchstabe sein.

      • Er darf nicht mit einem Bindestrich enden oder zwei aufeinanderfolgende Bindestriche enthalten.

      • Es muss für alle DB-Instances pro AWS-Konto und AWS-Region eindeutig sein.

    • Virtual Private Cloud (VPC): Wenn bereits eine VPC vorhanden ist, können Sie diese VPC mit dem Aurora MySQL-DB-Cluster verwenden, indem Sie die VPC-ID auswählen, beispielsweise vpc-a464d1c1. Weitere Informationen zum Erstellen einer VPC finden Sie unter Tutorial: Erstellen einer VPC zur Verwendung mit einem DB-Cluster (nur IPv4).

      Andernfalls können Sie von Aurora eine neue VPC erstellen lassen, indem Sie auf Neue VPC erstellen klicken.

    • DB-Subnetzgruppe: Wenn bereits eine Subnetzgruppe vorhanden ist, können Sie diese Subnetzgruppe mit dem Aurora-MySQL-DB-Cluster verwenden, indem Sie die Subnetzgruppen-ID auswählen, beispielsweise gs-subnet-group1.

      Andernfalls können Sie von Aurora eine neue Subnetzgruppe erstellen lassen, indem Sie auf Neue Subnetzgruppe erstellen klicken.

    • Öffentliche Zugänglichkeit: Wählen Sie Nein aus, um anzugeben, dass nur Ressourcen innerhalb Ihrer VPC auf Instances im DB-Cluster zugreifen dürfen. Wählen Sie Ja aus, um anzugeben, dass Ressourcen im öffentlichen Netzwerk auf Instances im DB-Cluster zugreifen dürfen. Die Standardeinstellung lautet Ja.

      Anmerkung

      Der Produktions-DB-Cluster muss sich nicht unbedingt in einem öffentlichen Subnetz befinden, da nur die Anwendungsserver Zugriff auf ihren DB-Cluster benötigen. Wenn sich das DB-Cluster nicht in einem öffentlichen Subnetz befinden muss, legen Sie Publicly Accessible (Öffentlich zugänglich) auf No (Nein) fest.

    • Availability Zone (Availability Zone): Wählen Sie die Availability Zone aus, in der die primäre Instance für Ihr Aurora-MySQL-DB-Cluster gehostet werden soll. Wenn die Availability Zone durch Aurora ausgewählt werden soll, wählen Sie No Preference (Keine Präferenz) aus.

    • Database Port (Datenbankport): Geben Sie den Standardport ein, der beim Verbinden der Instances im Aurora MySQL-DB-Cluster verwendet werden soll. Der Standardwert ist 3306.

      Anmerkung

      Möglicherweise lässt die Firewall eines Unternehmens den Zugriff auf Standardports, wie z. B. den MySQL-Standardport 3306, nicht zu. Geben Sie in diesem Fall einen Port ein, der von der Firewall Ihres Unternehmens zugelassen wird. Sie benötigen diesen Port-Wert später, wenn Sie eine Verbindung mit dem Aurora MySQL-DB-Cluster herstellen.

    • Verschlüsselung: Wählen Sie Verschlüsselung aktivieren aus, um Ihren neuen Aurora MySQL-DB-Cluster im Ruhezustand zu verschlüsseln. Wenn Sie Verschlüsselung aktivieren wählen, müssen Sie einen KMS-Schlüssel als Wert AWS KMS key wählen.

      Wenn Ihr DB-Snapshot nicht verschlüsselt ist, geben Sie einen Verschlüsselungsschlüssel an, damit Ihr DB-Cluster in Ruhe verschlüsselt wird.

      Wenn Ihr DB-Snapshot verschlüsselt ist, geben Sie einen Verschlüsselungsschlüssel an, damit Ihr DB-Cluster in Ruhe mit dem angegebenen Verschlüsselungsschlüssel verschlüsselt wird. Sie können den vom DB-Snapshot verwendeten Verschlüsselungsschlüssel oder einen anderen Schlüssel angeben. Aus einem verschlüsselten DB-Snapshot kann kein unverschlüsselter DB-Cluster erstellt werden.

    • Auto Minor Version Upgrade (Automatisches Unterversions-Upgrade): Diese Einstellung ist für Aurora MySQL-DB-Cluster nicht relevant.

      Weitere Informationen über Engine-Updates für Aurora MySQL finden Sie unter Datenbank-Engine-Updates für Amazon Aurora My SQL.

  4. Wählen Sie Migrate (Migrieren) aus, um den DB-Snapshot zu migrieren.

  5. Klicken Sie auf Instances und danach auf das Pfeilsymbol, um die DB-Cluster-Details anzuzeigen und den Fortschritt der Migration zu überwachen. Auf der Detailseite wird der Cluster-Endpunkt zum Herstellen einer Verbindung mit der primären Instance des DB-Clusters angezeigt. Weitere Informationen zum Herstellen einer Verbindung mit einem Aurora-MySQL-DB-Cluster finden Sie unter Herstellen einer Verbindung mit einem Amazon Aurora-DB-Cluster.

Sie können einen Aurora-DB-Cluster aus einem DB-Snapshot einer RDS für MySQL-DB-Instance erstellen, indem Sie den restore-db-cluster-from-snapshot-Befehl mit folgenden Parametern verwenden:

  • --db-cluster-identifier – Der Name des zu erstellenden DB-Clusters.

  • --engine aurora-mysql – Für einen mit MySQL 5.7 oder 8.0 kompatiblen DB-Cluster

  • --kms-key-id – DerAWS KMS key zur optionalen Verschlüsselung des DB-Clusters, je nachdem, ob Ihr DB-Snapshot verschlüsselt ist.

    • Wenn Ihr DB-Snapshot nicht verschlüsselt ist, geben Sie einen Verschlüsselungsschlüssel an, damit Ihr DB-Cluster in Ruhe verschlüsselt wird. Andernfalls wird Ihr DB-Cluster nicht verschlüsselt.

    • Wenn Ihr DB-Snapshot verschlüsselt ist, geben Sie einen Verschlüsselungsschlüssel an, damit Ihr DB-Cluster in Ruhe mit dem angegebenen Verschlüsselungsschlüssel verschlüsselt wird. Ansonsten wird Ihr DB-Cluster im Ruhezustand mit dem Verschlüsselungsschlüssel für den DB-Snapshot verschlüsselt.

      Anmerkung

      Aus einem verschlüsselten DB-Snapshot kann kein unverschlüsselter DB-Cluster erstellt werden.

  • --snapshot-identifier – Der Amazon-Ressourcenname (ARN) des zu migrierenden DB-Snapshots. Weitere Informationen zu Amazon RDS-ARNs finden Sie unter Amazon Relational Database Service (Amazon RDS).

Wenn Sie den DB-Snapshot mit dem Befehl RestoreDBClusterFromSnapshot migrieren, erstellt der Befehl sowohl den DB-Cluster als auch die primäre Instance.

In diesem Beispiel erstellen Sie ein mit MySQL 5.7 kompatibles DB-Cluster mit dem Namen mydbcluster aus einem DB-Snapshot, dessen ARN auf mydbsnapshotARN festgelegt wurde.

Für Linux, macOSoder Unix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mydbcluster \ --snapshot-identifier mydbsnapshotARN \ --engine aurora-mysql

Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mydbcluster ^ --snapshot-identifier mydbsnapshotARN ^ --engine aurora-mysql

In diesem Beispiel erstellen Sie einen mit MySQL 5.7 kompatiblen DB-Cluster mit dem Namen mydbcluster aus einem DB-Snapshot, dessen ARN auf mydbsnapshotARN festgelegt wurde.

Für Linux, macOSoder Unix:

aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mydbcluster \ --snapshot-identifier mydbsnapshotARN \ --engine aurora-mysql

Windows:

aws rds restore-db-cluster-from-snapshot ^ --db-cluster-identifier mydbcluster ^ --snapshot-identifier mydbsnapshotARN ^ --engine aurora-mysql