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, um den Snapshot in der AWS Region zu erstellen, 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 Ihr DB-Cluster befindet, verwenden Sie die Amazon RDS-Konsole, um den DB-Snapshot in diese AWS Region zu kopieren. 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 jeder 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 RDS for MySQL-DB-Instance migrieren, um einen Aurora MySQL-DB-Cluster mit dem AWS Management Console oder dem zu erstellen AWS CLI. 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 Ihre Daten speichern möchten, kopieren Sie den DB-Snapshot AWS in diese Region. Informationen zum Kopieren von DB-Snapshots finden Sie unter Kopieren eines DB-Snapshots.

Wenn Sie den DB-Snapshot mithilfe von migrieren AWS Management Console, ergreift die Konsole die erforderlichen Maßnahmen, um nur den DB-Cluster 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.

Um einen MySQL-DB-Snapshot mit dem AWS Management Console
  1. Melden Sie sich bei der an AWS Management Console 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-ID: Geben Sie einen Namen für den DB-Cluster ein, der für Ihr Konto in der ausgewählten AWS Region eindeutig ist. Dieser Bezeichner wird in den Endpunktadressen für die Instances im DB-Cluster verwendet. Sie können dem Namen einige Informationen hinzufügen, z. B. die AWS Region und die DB-Engine, die Sie ausgewählt habenaurora-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.

      • Er 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— Das AWS KMS key , mit dem Sie den DB-Cluster optional verschlüsseln können, 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 einen MySQL 5.7-kompatiblen DB-Cluster, der mydbcluster nach einem DB-Snapshot benannt ist und dessen ARN auf gesetzt ist. mydbsnapshotARN

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

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

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

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

In diesem Beispiel erstellen Sie einen MySQL 5.7-kompatiblen DB-Cluster, der mydbcluster nach einem DB-Snapshot benannt ist und dessen ARN auf gesetzt ist. mydbsnapshotARN

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Linux, macOS, oder Unix:

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

Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle. Windows:

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