Die MySQL-Datenbank und die PostgreSQL-Datenbank sind laut DBEngines.com beide Open-Source-Managementsysteme für relationale Datenbanken (RDBMS) auf den Plätzen 2 und 4. Beide sind in C implementiert (C++ wird auch für die MySQL-Datenbank verwendet) und beide bieten ähnliche Funktionen wie XML-Unterstützung, Sekundärindizes, Parallelität, Dauerhaftigkeit und benutzerdefinierte Funktionen. Die PostgreSQL-Datenbank bietet mehrere Vorteile, von denen einige wie folgt sind:
- Unterstützt erweiterte Datentypen wie mehrdimensionale Arrays und benutzerdefinierte Typen
- Common Table Expressions (CTEs) und Window-Funktionen sind seit PostgreSQL 8.4 verfügbar, wurden aber erst in Version 8.0 zu MySQL hinzugefügt
- Unterstützt vollständige äußere Verknüpfungen
- Unterstützt VALUES-Listen zum Generieren einer „konstanten Tabelle“, die in einer Abfrage verwendet werden kann
- Unterstützt Satzrückgabefunktionen generate_series
- Unterstützt seit Version 9.6 parallele Abfragen, die mehrere CPUs verwenden, um Abfragen schneller zu beantworten
- Unterstützt materialisierte Ansichten
Bei der Migration von MySQL zur PostgreSQL-Datenbank AWS bietet DMS (Database Migration Service) einen zuverlässigen Managed Service ohne Ausfallzeiten für kontinuierliche Datenreplikation. In vier Tutorials besprechen wir die Migration einer MySQL-Datenbankinstanz zu einer PostgreSQL-Datenbank, die beide auf AWS Relational Database Service (RDS) laufen. Dieses Tutorial hat die folgenden Abschnitte:
- Einstellung der Umgebung
- Erstellen eines IAM-Benutzers für DMS
Einstellung der Umgebung
Einzige Voraussetzung ist ein AWS-Konto, das unter diesem Link erstellt werden kann. Erstellen Sie einen KMS-Master-Verschlüsselungsschlüssel, der mit DMS verwendet werden soll, wenn noch kein Master-Schlüssel verfügbar ist. Aus den IAM>Verschlüsselungsschlüsseln wird ein KMS-Hauptschlüssel erstellt Instrumententafel. Wir haben in diesem Tutorial einen KMS-Master-Verschlüsselungsschlüssel namens „dbms“ verwendet.
Installieren Sie die MySQL-Datenbank und die PostgreSQL-Datenbank auf einem lokalen Computer, um die Client-Schnittstellenanwendungen zum Herstellen einer Verbindung mit MySQL- und PostgreSQL-Datenbankinstanzen auf RDS zu verwenden.
Erstellen eines IAM-Benutzers für DMS
DMS ist vollständig in mehrere andere AWS-Services integriert, z. B. RDS für Datenbanken, IAM für Identitäts- und Zugriffsverwaltung, KMS für Datenverschlüsselung und CloudWatch für die Protokollierung. DMS unterstützt auch S3 (Simple Storage Service) als Ziel für eine Migration. In diesem Abschnitt erstellen wir einen IAM-Benutzer, der mit DMS verwendet wird, um eine MySQL-Datenbankinstanz in eine PostgreSQL-Datenbank zu migrieren. Der IAM-Benutzer wird wie folgt erstellt:
- Erstellen Sie eine IAM-Richtlinie mit allen erforderlichen Berechtigungen und Richtlinienanweisungen.
- Erstellen Sie einen IAM-Benutzer basierend auf der IAM-Richtlinie.
Um eine IAM-Richtlinie zu erstellen, klicken Sie auf Richtlinie erstellen im IAM-Dashboard, wie in Abbildung 1 gezeigt.
Abbildung 1: Richtlinie erstellen
In der Richtlinie erstellen Wählen Sie im Assistenten Eigene Richtlinie erstellen aus , wie in Abbildung 2 gezeigt.
Abbildung 2: Auswählen der Option Eigene Richtlinie erstellen
In Bewertungsrichtlinien , geben Sie einen Richtliniennamen an (DMS). Kopieren Sie dann das folgende Richtliniendokument in das Richtliniendokument Feld oder Region.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "rds:*", "Resource": "*" }, { "Effect": "Allow", "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:*", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Effect": "Allow", "Action": "cloudwatch:*", "Resource": "*" }, { "Effect": "Allow", "Action": "aws-marketplace:*", "Resource": "*" }, { "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] }
Das Richtliniendokument fügt Berechtigungen für den Zugriff auf CloudWatch für die Protokollierung und RDS für Datenbanken hinzu. Klicken Sie auf Richtlinie validieren und wenn die Meldung „Die Richtlinie ist gültig“ lautet, klicken Sie auf Richtlinie erstellen , wie in Abbildung 3 gezeigt.
Abbildung 3: Richtlinie erstellen
Wenn die Richtlinie erstellt wird, sollte die in Abbildung 4 gezeigte Meldung angezeigt werden.
Abbildung 4: DMS wurde erstellt
Fügen Sie als Nächstes einen IAM-Benutzer hinzu. Wählen Sie Nutzer aus im IAM-Dashboard und klicken Sie auf Benutzer hinzufügen , wie in Abbildung 5 gezeigt.
Abbildung 5: Benutzer hinzufügen
Geben Sie einen Benutzernamen an (dwohra). Wählen Sie dann beide aufgelisteten Optionen für Zugriffstyp aus (siehe Abbildung 6).
Abbildung 6: Benutzerdetails hinzufügen
Wählen Sie das benutzerdefinierte Passwort aus Option für Konsolenpasswort , geben Sie ein Passwort ein und klicken Sie auf Weiter:Berechtigungen , wie in Abbildung 7 gezeigt.
Abbildung 7: Konfigurieren des Zugriffstyps
Legen Sie als Nächstes Berechtigungen für den Benutzer fest. Klicken Sie auf Vorhandene Richtlinien direkt anhängen , wie in Abbildung 8 gezeigt.
Abbildung 8: Vorhandene Richtlinien direkt anhängen
Im Richtlinientyp suchen Sie nach „DMS“, der zuvor erstellten Richtlinie. Wählen Sie die DMS-Richtlinie wie in Abbildung 9 gezeigt aus und klicken Sie auf Weiter.
Abbildung 9: Auswählen der DMS-Richtlinie
Im Rückblick , sollte die DMS-Richtlinie als Verwaltete Richtlinie aufgeführt werden in den Berechtigungen Zusammenfassung. Klicken Sie auf Nutzer erstellen , wie in Abbildung 10 gezeigt.
Abbildung 10: Benutzer erstellen
Der IAM-Benutzer wird erstellt (siehe Abbildung 11).
Abbildung 11: IAM-Benutzer erstellt
Der IAM-Benutzer wird in den IAM>Benutzern aufgeführt Dashboard, wie in Abbildung 12 gezeigt.
Abbildung 12: IAM-Benutzer
Um sich als der erstellte IAM-Benutzer anzumelden, klicken Sie auf den Link für den Benutzer und wählen Sie die Sicherheitsdaten aus und kopieren Sie den Console-Login-Link , wie in Abbildung 13 gezeigt.
Abbildung 13: Konsolen-Login-Link
Melden Sie sich als der IAM-Benutzer an, der über den Anmeldelink der Konsole für nachfolgende Abschnitte erstellt wurde.
Schlussfolgerung
In diesem ersten von vier Tutorials zum Migrieren einer MySQL-Datenbankinstanz auf RDS zu einer Postgres-Datenbankinstanz auf RDS haben wir einen IAM-Benutzer erstellt, um die Migration durchzuführen.