Tutorial: Onlinemigration von PostgreSQL zu Azure Database for PostgreSQL mittels DMS (klassisch) ü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 listdb von einer lokalen Instanz von PostgreSQL 13.10 zu Azure Database for PostgreSQL, indem Sie die Onlinemigrationsaktivität in Azure Database Migration Service verwenden.

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 die Community-Edition von PostgreSQL herunter, und installieren Sie diese. Die PostgreSQL-Version des Quellservers muss >= 9.4 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 12 kann zu Azure Database for PostgreSQL-Version >= 12 migrieren, nicht aber zu Azure Database for PostgreSQL 11.

  • Erstellen Sie einen Azure Database for PostgreSQL-Server.

  • 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
  • Der Benutzer muss auf dem Server, der die Datenbank hostet, über die Rolle REPLIKATION verfügen.

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 listdb zu erstellen, gehen Sie folgendermaßen vor:

    pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.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.

    Details dazu, wie Sie eine Datenbank verbinden und erstellen, finden Sie im Artikel Erstellen eines Azure Database for PostgreSQL-Servers im Azure-Portal.

  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 migratedb < listdbSchema.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 Menü des Azure-Portals oder auf der Startseite die Option Ressource erstellen aus. Suchen Sie Azure Database Migration Service, und wählen Sie ihn 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

    Wählen Sie den entsprechenden Quellservertyp und Zielservertyp sowie die Option Database Migration Service (klassisch) aus.

    Szenario zum Auswählen von „Database Migration Service (klassisch)“

  3. Auf dem Bildschirm Create Migration Service (Migrationsdienst erstellen) mit den Grundeinstellungen:

    • Wählen Sie das Abonnement aus.
    • Erstellen Sie eine neue Ressourcengruppe, oder wählen Sie eine vorhandene Ressourcengruppe aus.
    • Geben Sie einen Namen für die Instanz von Azure Database Migration Service an.
    • Wählen Sie den Standort aus, an dem Sie die Azure Database Migration Service-Instanz erstellen möchten.
    • Wählen Sie Azure als Dienstmodus aus.
    • Wählen Sie einen Tarif. Weitere Informationen zu Kosten und Tarifen finden Sie in der Preisübersicht.

    Konfigurieren der Grundeinstellungen einer Azure Database Migration Service-Instanz

    • Klicken Sie auf Weiter: Netzwerk.
  4. Auf dem Netzwerkbildschirm Create Migration Service (Migrationsdienst erstellen):

    • Wählen Sie ein vorhandenes virtuelles Netzwerk aus, oder erstellen Sie ein neues. Das virtuelle Netzwerk erteilt Azure Database Migration Service Zugriff auf die Quellserver und die Zielinstanz. Weitere Informationen zum Erstellen eines virtuellen Netzwerks im Azure-Portal finden Sie im Artikel Erstellen eines virtuellen Netzwerks im Azure Portal.

    Konfigurieren der Netzwerkeinstellungen einer Azure Database Migration Service-Instanz

    • Wählen Sie zum Überprüfen der Details Überprüfen + erstellen und dann Erstellen aus, um den Dienst zu erstellen.

    • Nach einigen Augenblicken wird die Azure Database Migration Service-Instanz erstellt und kann verwendet werden:

    Erstellte Migration Service-Instanz

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.

    Screenshot: Suche nach 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.

    Screenshot einer Suche nach der Azure Database Migration Service-Instanz.

  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 Migrationsaktivitätstyp die Option Onlinedatenmigration aus.

    Screenshot: „Neues Migrationsprojekt erstellen“

    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 Aktivität erstellen und ausführen aus, um Azure Database Migration Service erfolgreich zum Migrieren von Daten zu verwenden.

Angeben von Quelldetails

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

    Screenshot: Bildschirm „Quelldetails hinzufügen“

Angeben von Zieldetails

  1. Geben Sie auf dem Bildschirm Zieldetails die Verbindungsinformationen für das Ziel Azure Database for PostgreSQL – Flexibler Server an. Dabei handelt es sich um die vorab bereitgestellte Instanz, auf der das Schema mittels pg_dump bereitgestellt wurde.

    Screenshot eines Bildschirms „Zieldetails hinzufügen“.

  2. Klicken Sie auf Weiter: Datenbanken auswählen, und ordnen Sie dann auf dem Bildschirm Datenbanken auswählen 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.

    Screenshot eines Bildschirms der Zuordnung von Datenbanken zum Ziel.

  3. Klicken Sie auf Weiter: Tabellen auswählen, und wählen Sie dann auf dem Bildschirm Tabellen auswählen die erforderlichen Tabellen aus, die migriert werden müssen.

    Screenshot eines Bildschirms zum Auswählen von Tabellen für die Migration.

  4. Klicken Sie auf Weiter: Migrationseinstellungen konfigurieren, und akzeptieren Sie dann auf dem Bildschirm Migrationseinstellungen konfigurieren die Standardwerte.

    Screenshot des Bildschirms „Migrationseinstellungen konfigurieren“.

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

    Screenshot des Bildschirms „Migrationszusammenfassung“.

Ausführen der Migration

  • Wählen Sie Migration starten 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.

    Screenshot des Bildschirms „Migrationsüberwachung“.

  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.

    Screenshot des Bildschirms „vollständige Migrationsladedetails“.

    Screenshot des Bildschirms „inkrementelle Migrationsladedetails“.

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.

    Screenshot des Bildschirms „Cutover abgeschlossen“.

  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