Tutorial: Onlinemigration von RDS PostgreSQL mit DMS zu Azure Database for PostgreSQL

Sie können Azure Database Migration Service verwenden, um Datenbanken von einer RDS-PostgreSQL-Instanz zu Azure Database for PostgreSQL zu migrieren, während die Quelldatenbank während der Migration online bleibt. Somit kommt es bei der Migration nur zu einer geringen Ausfallzeit für die Anwendung. In diesem Tutorial migrieren Sie die Beispieldatenbank DVD Rental von einer Instanz von RDS PostgreSQL 9.6 zu Azure Database for PostgreSQL. Zu diesem Zweck verwenden Sie die Onlinemigrationsaktivität in Azure Database Migration Service.

In diesem Tutorial lernen Sie Folgendes:

  • Migrieren des Beispielschemas mit dem Hilfsprogramm „pg_dump“
  • Erstellen einer Instanz von Azure Database Migration Service
  • Erstellen eines Migrationsprojekts mithilfe von Azure Database Migration Service
  • Ausführen der Migration
  • Überwachen der Migration
  • Durchführen der Migrationsübernahme

Hinweis

Die Verwendung von Azure Database Migration Service zum Ausführen einer Onlinemigration erfordert das Erstellen einer Instanz auf der Grundlage des Premium-Tarifs. Weitere Informationen finden Sie auf der Seite Azure Database Migration Service – Preise. Wir verschlüsseln den Datenträger, um Datendiebstahl während der Migration zu verhindern.

Wichtig

Für eine optimale Migration empfiehlt Microsoft die Erstellung einer Azure Database Migration Service-Instanz in derselben Azure-Region, in der sich auch die Zieldatenbank befindet. Die Verschiebung von Daten zwischen Regionen oder Geografien kann den Migrationsvorgang verlangsamen und Fehler verursachen.

Tipp

In Azure Database Migration Service können Sie Ihre Datenbanken offline oder online migrieren. Bei einer Offlinemigration beginnt die Ausfallzeit der Anwendung mit dem Start der Migration. Um die Ausfallzeit auf die Zeit zu begrenzen, die für das Cutover zur neuen Umgebung nach der Migration erforderlich ist, führen Sie eine Onlinemigration durch. Wir empfehlen, dass Sie eine Offlinemigration testen, um zu bestimmen, ob die Ausfallzeit akzeptabel ist. Wenn die erwartete Ausfallzeit nicht akzeptabel ist, führen Sie eine Onlinemigration durch.

Dieser Artikel beschreibt, wie Sie eine Onlinemigration von einer lokalen Instanz von PostgreSQL zu Azure Database for PostgreSQL durchführen.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Laden Sie PostgreSQL Community Edition 9.5, 9.6 oder 10 herunter, und installieren Sie die Edition. Die PostgreSQL-Version des Quellservers muss 9.5.11, 9.6.7, 10 oder höher sein. Weitere Informationen finden Sie im Artikel Unterstützte PostgreSQL-Datenbankversionen.

    Beachten Sie außerdem, dass die Azure Database for PostgreSQL-Zielversion höher als die RDS PostgreSQL-Version sein oder dieser entsprechen muss. Beispiel: RDS PostgreSQL 9.6 kann nur zu Azure Database for PostgreSQL 9.6, 10 oder 11 migriert werden, nicht aber zu Azure Database for PostgreSQL 9.5.

  • Erstellen Sie eine Instanz von Azure Database for PostgreSQL oder Azure Database for PostgreSQL – Hyperscale (Citus). Lesen Sie diesen Abschnitt des Dokuments, um zu erfahren, wie Sie mit pgAdmin eine Verbindung mit dem PostgreSQL-Server herstellen können.

  • Erstellen Sie ein Microsoft Azure Virtual Network für Azure Database Migration Service, indem Sie das Azure Resource Manager-Bereitstellungsmodell verwenden, das Site-to-Site-Konnektivität für Ihre lokalen Quellserver entweder über ExpressRoute oder über VPN bereitstellt. Weitere Informationen zum Erstellen eines virtuellen Netzwerks finden Sie in der Dokumentation zu Virtual Network und insbesondere in den Schnellstartartikeln mit Schritt-für-Schritt-Anleitungen.

  • Stellen Sie sicher, dass die NSG-Regeln (Netzwerksicherheitsgruppen) des virtuellen Netzwerks nicht den ausgehenden Port 443 von ServiceTag für ServiceBus, Storage und AzureMonitor blockieren. Ausführlichere Informationen zur NSG-Datenverkehrsfilterung in einem virtuellen Netzwerk finden Sie im Artikel Filtern des Netzwerkdatenverkehrs mit Netzwerksicherheitsgruppen.

  • Konfigurieren Sie Ihre Windows-Firewall für Datenbank-Engine-Zugriff.

  • Öffnen Sie Ihre Windows-Firewall, damit Azure Database Migration Service auf die PostgreSQL Server-Quellinstanz zugreifen kann (standardmäßig TCP-Port 5432).

  • Wenn Sie eine Firewall-Appliance vor Ihren Quelldatenbanken verwenden, müssen Sie möglicherweise Firewallregeln hinzufügen, damit Azure Database Migration Service auf die Quelldatenbanken für die Migration zugreifen kann.

  • Erstellen Sie für den Azure Database for PostgreSQL-Server eine Firewallregel auf Serverebene, um den Zugriff auf die Zieldatenbanken durch Azure Database Migration Service zu ermöglichen. Geben Sie den Subnetzbereich des für Azure Database Migration Service verwendeten virtuellen Netzwerks an.

Einrichten von AWS RDS PostgreSQL für die Replikation

  1. Um eine neue Parametergruppe zu erstellen, befolgen Sie die von AWS im Artikel Arbeiten mit DB-Parametergruppen bereitgestellten Anweisungen.

  2. Verwenden Sie den Masterbenutzernamen, um aus Azure Database Migration Service eine Verbindung mit der Quelle herzustellen. Wenn Sie ein anderes Konto als das Masterbenutzerkonto verwenden, muss das Konto über die Rollen rds_superuser und rds_replication verfügen. Die Rolle rds_replication berechtigt zur Verwaltung logischer Slots sowie zum Streamen von Daten mit logischen Slots.

  3. Erstellen Sie eine neue Parametergruppe mit der folgenden Konfiguration:

    a. Legen Sie den rds.logical_replication-Parameter in Ihrer DB-Parametergruppe auf 1 fest.

    b. max_wal_senders = [Anzahl gleichzeitiger Aufgaben] – Der max_wal_senders-Parameter legt die Anzahl von Aufgaben fest, die gleichzeitig ausgeführt werden können, 10 Aufgaben empfohlen.

    c. max_replication_slots – = [Anzahl von Slots], empfohlene Einstellung: fünf Slots.

  4. Ordnen Sie die Parametergruppe, die Sie erstellt haben, der RDS PostgreSQL-Instanz zu.

Migrieren des Schemas

  1. Extrahieren Sie das Schema aus der Quelldatenbank, und wenden Sie es auf die Zieldatenbank an, um die Migration aller Datenbankobjekte wie Tabellenschemas, Indizes und gespeicherten Prozeduren abzuschließen.

    Die einfachste Möglichkeit zum Migrieren nur des Schemas ist die Verwendung von pg_dump mit der Option „-s“. Weitere Informationen finden Sie in den Beispielen im Postgres-Tutorial zu pg_dump.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Zum Sichern einer Schemadatei für die Datenbank dvdrental verwenden Sie z.B. den folgenden Befehl:

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    
  2. Erstellen Sie eine leere Datenbank im Zieldienst Azure Database for PostgreSQL. Informationen zum Herstellen einer Verbindung und zum Erstellen einer Datenbank finden Sie in einem der folgenden Artikel:

  3. Importieren Sie das Schema in den Zieldienst Azure Database for PostgreSQL. Um die Schemasicherungsdatei wiederherzustellen, führen Sie den folgenden Befehl aus:

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Beispiel:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d dvdrental < dvdrentalSchema.sql
    

Hinweis

Der Migrationsdienst verwaltet intern die Aktivierung/Deaktivierung von Fremdschlüsseln und Triggern, um eine zuverlässige und stabile Datenmigration zu gewährleisten. Daher müssen Sie sich keine Gedanken über Änderungen am Schema der Zieldatenbank machen.

Registrieren des Ressourcenanbieters

Sie müssen den Microsoft.DataMigration-Ressourcenanbieter registrieren, bevor Sie Ihre erste Instanz von Database Migration Service erstellen.

  1. Melden Sie sich beim Azure-Portal an. Suchen Sie nach Abonnements, und wählen Sie diese Option aus.

    Abonnements im Portal anzeigen

  2. Wählen Sie das Abonnement aus, in dem Sie die Azure Database Migration Service-Instanz erstellen möchten, und klicken Sie dann auf Ressourcenanbieter.

    Ressourcenanbieter anzeigen

  3. Suchen Sie nach „Migration“, und wählen Sie dann Registrieren für Microsoft.DataMigration aus.

    Registrieren des Ressourcenanbieters

Erstellen einer Instanz von Azure Database Migration Service

  1. Wählen Sie im Azure-Portal die Option + Ressource erstellen, suchen Sie nach Azure Database Migration Service, und wählen Sie dann Azure Database Migration Service aus der Dropdownliste aus.

    Azure Marketplace

  2. Wählen Sie auf dem Bildschirm Azure Database Migration Service die Schaltfläche Erstellen aus.

    Erstellen einer Instanz von Azure Database Migration Service

  3. Geben Sie auf dem Bildschirm Migrationsdienst erstellen einen Namen für den Dienst, das Abonnement und eine neue oder vorhandene Ressourcengruppe an.

  4. Wählen Sie den Standort aus, an dem Sie die Azure Database Migration Service-Instanz erstellen möchten.

  5. Wählen Sie ein vorhandenes virtuelles Netzwerk aus, oder erstellen Sie ein neues.

    Das virtuelle Netzwerk bietet Azure Database Migration Service Zugriff auf die PostgreSQL-Quellinstanz und die Azure Database for PostgreSQL-Zielinstanz.

    Weitere Informationen zum Erstellen eines virtuellen Netzwerks im Azure-Portal finden Sie im Artikel Erstellen eines virtuellen Netzwerks im Azure Portal.

  6. Wählen Sie einen Tarif aus. Für diese Onlinemigration müssen Sie Premium auswählen: 4vCores-Tarif.

    Konfigurieren der Einstellungen einer Azure Database Migration Service-Instanz

  7. Wählen Sie Erstellen, um den Dienst zu erstellen.

Erstellen eines Migrationsprojekts

Nachdem der Dienst erstellt wurde, suchen Sie diesen im Azure-Portal, öffnen Sie ihn, und erstellen Sie anschließend ein neues Migrationsprojekt.

  1. Wählen Sie im Azure-Portal Alle Dienste, suchen Sie nach Azure Database Migration Service, und wählen Sie dann Azure Database Migration Service aus.

    Suchen aller Instanzen von Azure Database Migration Service

  2. Suchen Sie auf dem Bildschirm Azure Database Migration Services nach dem Namen der von Ihnen erstellten Azure Database Migration Service-Instanz, wählen Sie die Instanz aus, und klicken Sie dann auf Neues Migrationsprojekt.

  3. Geben Sie auf dem Bildschirm Neues Migrationsprojekt einen Projektnamen im Textfeld Typ des Quellservers an, wählen Sie AWS RDS for PostgreSQL (AWS RDS für SQL Server), und wählen Sie dann im Textfeld Typ des Zielservers die Option Azure Database for PostgreSQL aus.

  4. Wählen Sie im Abschnitt Aktivitätstyp auswählen die Option Onlinedatenmigration aus.

    Wichtig

    Wählen Sie unbedingt Onlinedatenmigration aus; Offlinemigrationen werden für dieses Szenario nicht unterstützt.

    Erstellen eines Database Migration Service-Projekts

    Hinweis

    Alternativ können Sie Nur Projekt erstellen auswählen, um das Migrationsprojekt jetzt zu erstellen und die Migration später durchzuführen.

  5. Wählen Sie Speichern aus.

  6. Klicken Sie auf Aktivität erstellen und ausführen, um das Projekt zu erstellen und die Migrationsaktivität auszuführen.

    Hinweis

    Notieren Sie sich die Voraussetzungen für die Einrichtung der Onlinemigration auf dem Projekterstellungsblatt.

Angeben von Quelldetails

  • Geben Sie auf dem Bildschirm Quelldetails hinzufügen die Verbindungsinformationen für die PostgreSQL-Quellinstanz an.

    Quellendetails

Angeben von Zieldetails

  1. Wählen Sie Speichern aus, und geben Sie dann auf dem Bildschirm Zieldetails die Verbindungsdetails für den Azure Database for PostgreSQL-Zielserver an, der vorab bereitgestellt wird und das Schema DVD Rentals über pg_dump implementiert.

    Zieldetails

  2. Klicken Sie auf Speichern, und ordnen Sie dann auf dem Bildschirm Den Zieldatenbanken zuordnen die Quell- und die Zieldatenbank für die Migration zu.

    Wenn die Zieldatenbank denselben Datenbanknamen wie die Quelldatenbank enthält, wählt Azure Database Migration Service die Zieldatenbank standardmäßig aus.

    Zuordnen zu Zieldatenbanken

  3. Klicken Sie auf Speichern. Geben Sie auf dem Bildschirm Migrationszusammenfassung im Textfeld Aktivitätsname einen Namen für die Migrationsaktivität ein, und überprüfen Sie anschließend die Zusammenfassung, um sicherzustellen, dass die Ziel- und Quelldetails Ihren vorherigen Angaben entsprechen.

    Migrationszusammenfassung

Ausführen der Migration

  • Wählen Sie Migration ausführen aus.

    Das Fenster „Migrationsaktivität“ wird angezeigt, und der Status der Aktivität lautet Initialisierung.

Überwachen der Migration

  1. Klicken Sie auf dem Bildschirm „Migrationsaktivität“ auf Aktualisieren, um die Anzeige zu aktualisieren, bis der Status der Migration Ausgeführt lautet.

    Aktivitätsstatus: Wird ausgeführt

  2. Wählen Sie unter DATENBANKNAME eine bestimmte Datenbank aus, um den Migrationsstatus für die Vorgänge Vollständiger Datenladevorgang und Inkrementelle Datensynchronisierung abzurufen.

    Unter Vollständiger Datenladevorgang wird der Migrationsstatus des ersten Ladevorgangs und unter Inkrementelle Datensynchronisierung der CDC-Status (Change Data Capture) angezeigt.

    Inventarbildschirm: Vollständiger Datenladevorgang

    Inventarbildschirm: Inkrementelle Datensynchronisierung

Durchführen der Migrationsübernahme

Wenn der erste vollständige Ladevorgang abgeschlossen ist, werden die Datenbanken als Zur Übernahme bereit markiert.

  1. Wenn Sie die Datenmigration abschließen möchten, klicken Sie auf Übernahme starten.

  2. Warten Sie, bis der Zähler Ausstehende Änderungen den Wert 0 anzeigt, um sicherzustellen, dass alle eingehenden Transaktionen für die Datenbank angehalten werden, aktivieren Sie das Kontrollkästchen Bestätigen, und klicken Sie auf Anwenden.

    Bildschirm „Umstellung abschließen“

  3. Wenn als Status der Datenmigration Abgeschlossen angezeigt wird, stellen Sie eine Verbindung zwischen Ihren Anwendungen und der neuen Azure Database for PostgreSQL-Zieldatenbank her.

Die Onlinemigration von einer lokalen Instanz von RDS PostgreSQL zu Azure Database for PostgreSQL ist jetzt abgeschlossen.

Nächste Schritte