Tutorial: Onlinemigration von PostgreSQL zu Azure Database for PostgreSQL mit Database Migration Service über das Azure-Portal

Mit Azure Database Migration Service können Sie Datenbanken mit minimaler Ausfallzeit für die Anwendung von einer lokalen PostgreSQL-Instanz zu Azure Database for PostgreSQL migrieren. In diesem Tutorial migrieren Sie die Beispieldatenbank DVD Rental von einer lokalen Instanz von 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 in 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. 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.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Laden Sie PostgreSQL Community Edition 9.4, 9.5, 9.6 oder 10 herunter, und installieren Sie die Edition. Die PostgreSQL-Version des Quellservers muss 9.4, 9.5, 9.6, 10, 11, 12 oder 13 sein. Weitere Informationen finden Sie unter Unterstützte PostgreSQL-Datenbankversionen.

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

  • Erstellen Sie einen Azure Database for PostgreSQL-Server, oder erstellen Sie einen Azure Database for PostgreSQL-Server: Hyperscale (Citus).

  • Erstellen Sie ein virtuelles Microsoft Azure-Netzwerk für Azure Database Migration Service mithilfe des Azure Resource Manager-Bereitstellungsmodells, das Site-to-Site-Konnektivität für Ihre lokalen Quellserver ü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.

    Hinweis

    Fügen Sie bei Verwendung von ExpressRoute mit Netzwerkpeering zu Microsoft während des Setups des virtuellen Netzwerks die folgenden Dienstendpunkte zu dem Subnetz hinzu, in dem der Dienst bereitgestellt werden soll:

    • Zieldatenbankendpunkt (z. B. SQL-Endpunkt, Azure Cosmos DB-Endpunkt usw.)
    • Speicherendpunkt
    • Service Bus-Endpunkt

    Diese Konfiguration ist erforderlich, weil Azure Database Migration Service über keine Internetverbindung verfügt.

  • 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 Azure Database for PostgreSQL eine Firewallregel auf Serverebene, um Azure Database Migration Service den Zugriff auf die Zieldatenbanken zu ermöglichen. Geben Sie den Subnetzbereich des für Azure Database Migration Service verwendeten virtuellen Netzwerks an.

  • Aktivieren Sie die logische Replikation in der postgresql.config-Datei, und legen Sie die folgenden Parameter fest:

    • wal_level = logical
    • max_replication_slots = [Anzahl von Slots], empfohlene Einstellung: 5 Slots
    • max_wal_senders = [Anzahl gleichzeitiger Aufgaben] – Der max_wal_senders-Parameter legt die Anzahl von Aufgaben fest, die gleichzeitig ausgeführt werden können; empfohlene Einstellung: 10 Aufgaben

Wichtig

Alle Tabellen in Ihrer vorhandenen Datenbank benötigen einen Primärschlüssel, um sicherzustellen, dass Änderungen mit der Zieldatenbank synchronisiert werden können.

Migrieren des Beispielschemas

Zum Fertigstellen aller Datenbankobjekte wie Tabellenschemas, Indizes und gespeicherter Prozeduren muss das Schema aus der Quelldatenbank extrahiert und auf die Datenbank angewendet werden.

  1. Verwenden Sie den Befehl „pg_dump -s“, um eine Schemasicherungsdatei für eine Datenbank zu erstellen.

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

    Um beispielsweise eine Schemasicherungsdatei für die Datenbank dvdrental zu erstellen, gehen Sie folgendermaßen vor:

    pg_dump -O -h localhost -U postgres -d dvdrental -s -x > dvdrentalSchema.sql
    

    Weitere Informationen zur Verwendung des Dienstprogramms „pg_dump“ finden Sie in den Beispielen des pg-dump-Tutorials.

  2. Erstellen Sie eine leere Datenbank in der Zielumgebung, Azure Database for PostgreSQL.

    Ausführliche Anleitungen zum Erstellen und Verbinden einer Datenbank finden Sie unter Erstellen eines Azure Database for PostgreSQL-Servers im Azure-Portal und unter Erstellen eines Azure Database for PostgreSQL-Servers – Hyperscale (Citus) über das Azure-Portal.

    Hinweis

    Eine Instanz von Azure Database for PostgreSQL – Hyperscale (Citus) besitzt nur eine einzige Datenbank: citus.

  3. Importieren Sie das Schema in die Zieldatenbank, die Sie erstellt haben, indem Sie die Schemasicherungsdatei wiederherstellen.

    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 citus < 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 DMS-Instanz

  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, das Abonnement, eine neue oder vorhandene Ressourcengruppe und den Speicherort für den Dienst an.

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

    Das virtuelle Netzwerk bietet Azure Database Migration Service Zugriff auf den PostgreSQL-Quellserver 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.

  5. Wählen Sie einen Tarif.

    Weitere Informationen zu Kosten und Tarifen finden Sie in der Preisübersicht.

    Konfigurieren der Einstellungen einer Azure Database Migration Service-Instanz

  6. Klicken Sie zum Erstellen des Diensts auf Überprüfen + erstellen.

    Die Diensterstellung dauert etwa 10 bis 15 Minuten.

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 im Bereich Neues Migrationsprojekt einen Namen für das Projekt an, wählen Sie im Textfeld Typ des Quellservers den Eintrag PostgreSQL aus, und wählen Sie im Textfeld Typ des Zielservers den Eintrag Azure Database for PostgreSQL aus.

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

    Erstellen eines Azure 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, beachten Sie die Anforderungen für die erfolgreiche Verwendung von Azure Database Migration Service zum Migrieren von Daten, und wählen Sie dann Aktivität erstellen und ausführen aus.

Angeben von Quelldetails

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

    Bildschirm „Quelldetails hinzufügen“

  2. Wählen Sie Speichern aus.

Angeben von Zieldetails

  1. Geben Sie auf dem Bildschirm Zieldetails die Verbindungsinformationen für den Hyperscale (Citus)-Zielserver an. Dabei handelt es sich um die vorab bereitgestellte Instanz von Hyperscale (Citus), auf der das Schema DVD Rentals über „pg_dump“ bereitgestellt wurde.

    Bildschirm „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.

    Bildschirm „Den Zieldatenbanken zuordnen“

  3. Klicken Sie auf Speichern, und übernehmen Sie auf dem Bildschirm Migrationseinstellungen die Standardwerte.

    Bildschirm „Migrationseinstellungen“

  4. 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.

    Bildschirm „Migrationszusammenfassung“

Ausführen der Migration

  • Wählen Sie Migration ausführen aus.

    Das Fenster „Migrationsaktivität“ wird angezeigt, und der Status der Aktivität sollte zu Sicherung wird durchgeführt aktualisiert werden.

Überwachen der Migration

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

    Überwachen des Migrationsprozesses

  2. Wenn die Migration abgeschlossen ist, wählen Sie unter Datenbankname eine bestimmte Datenbank aus, um den Migrationsstatus für die Vorgänge Vollständiger Datenladevorgang und Inkrementelle Datensynchronisierung abzurufen.

    Hinweis

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

    Details zum vollständigen Datenladevorgang

    Details zur inkrementellen 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 der Status der Datenbankmigration als Abgeschlossen angezeigt wird, erstellen Sie Sequenzen neu (sofern erforderlich), und stellen Sie eine Verbindung zwischen Ihren Anwendungen und der neuen Azure Database for PostgreSQL-Zielinstanz her.

Nächste Schritte