Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Migrieren von MySQL zu PostgreSQL auf AWS RDS, Teil 4

In vier Tutorials untersuchen wir die Migration einer MySQL-Datenbank zu einer PostgreSQL-Datenbank mit dem AWS Database Migration Service (DMS). Wir haben im ersten Tutorial „Migration von MySQL zu PostgreSQL auf AWS RDS, Teil 1“ damit begonnen, einen IAM-Benutzer für DMS zu erstellen. Anschließend haben wir das Erstellen von Instanzen von MySQL und PostgreSQL auf AWS Relational Database Service (RDS) im zweiten Tutorial „Migrieren von MySQL zu PostgreSQL auf AWS RDS, Teil 2“ besprochen. Im dritten Tutorial, „Migration von MySQL zu PostgreSQL auf AWS RDS, Teil 3“, haben wir eine DMS-Migration erstellt. In diesem letzten Tutorial besprechen wir die Ausführung der DMS-Migration, um die Migration durchzuführen.

Dieses Tutorial hat die folgenden Abschnitte:

  • DMS-Migrationstask ausführen
  • Durchsuchen der migrierten Datenbank
  • Erkunden von CloudWatch-Protokollen
  • Einschränkungen bei der Migration von MySQL zu PostgreSQL mit DMS
  • Schlussfolgerung

DMS-Migrationsaufgabe ausführen

Nachdem die Aufgabe erstellt wurde, wird der Status sollte Bereit werden , wie in Abbildung 1 gezeigt. Klicken Sie auf Start/Fortsetzen um die Aufgabe zu starten.


Abbildung 1: Starten/Fortsetzen

Der Status sollte Startend lauten , wie in Abbildung 2 gezeigt.


Abbildung 2: Aufgabe wird gestartet

Wenn die Aufgabe eine Verbindung mit der Replikationsinstanz und den Datenbankendpunkten hergestellt und angewendet hat, ändert sich der Status der Tabellenzuordnungen zu Wird ausgeführt , wie in Abbildung 3 gezeigt.


Abbildung 3: Status läuft

Die Migration wird wie konfiguriert ausgeführt und nach erfolgreichem Abschluss der Migration der Status wird zu Laden abgeschlossen , wie in Abbildung 4 gezeigt. Die geladenen Tabellen Spalte gibt die Anzahl der geladenen Tabellen an.


Abbildung 4: Status Laden abgeschlossen

Klicken Sie für die migrierten Tabellen auf die Tabellenstatistik Registerkarte, wie in Abbildung 5 gezeigt. Tabellenstatistiken, einschließlich Schema, Tabelle, Status, Anzahl der Einfügungen, Löschungen, Aktualisierungen, DDLs, Volllastzeilen und Gesamt werden aufgelistet.


Abbildung 5: Tabellenstatistik

Wenn die Quelldatenbanktabelle keine Tabellen enthält, werden die Full Load Rows ist 0. Wenn eine Quelltabelle Zeilen hat, gibt Full Load Rows die Anzahl der Zeilen an, wie für einige der Zeilen in Abbildung 6 gezeigt.


Abbildung 6: Full Load Rows für einige Tabellen ist 0, während für andere Tabellen die Anzahl der geladenen Zeilen

Durchsuchen der migrierten Datenbank

Nachdem Sie MySQL-Datenbankschemas und -tabellen nach PostgreSQL migriert haben, listen Sie die Schemas in der PostgreSQL-CLI mit dem dn auf Befehl. Die migrierten Schemas werden aufgelistet, wie in Abbildung 7 gezeigt. Die Datei public Schema war bereits vor der Migration vorhanden.


Abbildung 7: Schemas von MySQL in die PostgreSQL-Datenbank migriert

Die DMS-Migration konvertiert die Tabellenspaltentypen automatisch. Ein sekundärer Index wird für einen Primärschlüssel hinzugefügt, der automatisch in der Tabellenzuordnung erstellt wird.

Tabellendaten werden ebenfalls migriert, wie für mysql.user gezeigt Tabelle in Abbildung 8.


Abbildung 8: Tabellendaten werden ebenfalls migriert

Bei der Migration von einem Datenbanktyp auf einen anderen (heterogene Migration) werden die Datentyp-Mappings von DMS automatisch vorgenommen. Während einer Migration wird ein zwischengeschalteter DMS-Datentyp verwendet. Bei der Migration von MySQL-Datenbank zu PostgreSQL werden zuerst die MySQL-Datentypen in den DMS-Datentyp migriert, wobei die integrierten Zuordnungen für die MySQL-Datenbank als Quelldatenbank verwendet werden. Anschließend wird der DMS-Datentyp auf PostgreSQL-Datentypen abgebildet, wobei wiederum integrierte Zuordnungen für PostgreSQL als Zieldatenbank verwendet werden. RDS-bezogene Tabellen in der MySQL-Datenbank auf RDS werden ebenfalls in die PostgreSQL-Datenbank migriert, wie z. B. die in Abbildung 9 gezeigte Tabelle „mysql“. „rds_replication_status“.


Abbildung 9: Migrierte Daten für eine RDS-Informationstabelle

Erkunden von CloudWatch-Protokollen

Wenn die Protokollierung wie bei uns konfiguriert ist, können die Protokolle über die Protokolle überwacht werden Registerkarte, wie in Abbildung 10 gezeigt. Klicken Sie auf den Task-Link, um die CloudWatch-Protokolle aufzulisten.


Abbildung 10: Protokolle

Die CloudWatch-Protokolle werden aufgelistet (siehe Abbildung 11).


Abbildung 11: CloudWatch-Protokolle

Wie eine CloudWatch-Protokollmeldung in Abbildung 12 zeigt:„Alle Tabellen werden geladen. Nur-Volllast-Task wird gestoppt“.


Abbildung 12: Alle Tabellen werden geladen

Die Anzahl der übertragenen Datensätze wird ebenfalls aufgelistet, wie bei der sys.sys_config Tabelle in Abbildung 13.


Abbildung 13: Der Protokolleintrag für eine Datenbanktabelle enthält # der übertragenen Datensätze

CloudWatch-Protokolle können zum Debuggen einer Migrationsaufgabenausführung verwendet werden. Die Fehlermeldungen werden für die Tabellen aufgelistet, die nicht erfolgreich in den CloudWatch-Protokollen migriert wurden.

Einschränkungen bei der Migration von MySQL zu PostgreSQL mit DMS

Die Migration von einer MySQL-Datenbank zu einer PostgreSQL-Datenbank mit DMS ist nicht ohne Einschränkungen. Der DMS-Service selbst hat Beschränkungen pro AWS-Benutzerkonto. Andere DMS-Einschränkungen können datenbankspezifisch sein. DMS-Quelldatentypen für MySQL enthalten nicht den 4-Byte-Zeichensatz UTF-8 (utf8mb4). Der von DMS unterstützte Zeichensatz ist Code Page 1252 Windows Latin 1 (ANSI) und Zeichen, die nicht im Zeichensatz enthalten sind, könnten während einer Migration einen Fehler erzeugen. Für die MySQL-Datenbank als DMS-Quelle bestehen einige Einschränkungen. Die einzige Einschränkung für die Verwendung von PostgreSQL als DMS-Zieldatenbank besteht darin, dass der JSON-Datentyp in den nativen CLOB-Datentyp konvertiert wird.

Schlussfolgerung

In vier Tutorials haben wir die Migration einer MySQL-Datenbankinstanz auf RDS zu einer Postgres-Datenbankinstanz auf RDS besprochen.