Share via


Lernprogramm: Migrieren von einer lokalen oder einer Azure-VM, die PostgreSQL gehostet hat, zu Azure-Datenbank für PostgreSQL mithilfe des Migrationsdiensts

GILT FÜR: Azure Database for PostgreSQL – Flexible Server

Dieses Tutorial leitet Sie durch das Migrieren einer PostgreSQL-Instanz von Ihren lokalen oder virtuellen Azure-Computern (VMs) zu Azure Database for PostgreSQL – Flexibler Server mithilfe des Azure-Portals und Azure CLI.

Der Migrationsdienst in Azure Database for PostgreSQL ist ein vollständig verwalteter Dienst, der in das Azure-Portal und in Azure CLI integriert ist. Er wurde entwickelt, um Ihre Migrationsjourney zu Azure Database for PostgreSQL – Flexibler Server zu vereinfachen.

  • Konfigurieren Ihrer Instanz des flexiblen Azure Database for PostgreSQL-Servers
  • Konfigurieren der Migrationsaufgabe
  • Überwachen der Migration
  • Abbrechen der Migration
  • Nach der Migration

Voraussetzungen (offline)

Bevor Sie Ihre Migration mit dem Migrationsdienst in Azure Database for PostgreSQL starten, müssen Sie unbedingt die folgenden Voraussetzungen erfüllen, die für Offlinemigrationsszenarien gelten.

Überprüfen der Quellversion

Die PostgreSQL-Quellversion sollte >= 9.5 sein. Wenn die PostgreSQL-Quellversion kleiner als 9.5 ist, aktualisieren Sie die PostgreSQL-Quellversion auf 9.5 oder höher, bevor Sie migrieren.

Zielsetup

  • Azure Database for PostgreSQL muss vor der Migration in Azure eingerichtet werden.

  • Die für die Azure Database for PostgreSQL-Instanz gewählte SKU sollte den Spezifikationen der Quelldatenbank entsprechen, um Kompatibilität und angemessene Leistung sicherzustellen.

  • Ausführliche Anweisungen zum Erstellen einer neuen Azure Database for PostgreSQL-Instanz finden Sie unter dem folgenden Link: Schnellstart: Erstellen eines Servers.

Netzwerkeinrichtung

Das ordnungsgemäße Netzwerksetup ist unerlässlich, um während der Migration eine erfolgreiche Verbindung zwischen der Quelle und dem Ziel sicherzustellen. Im Folgenden finden Sie eine Anleitung zum Einrichten der Netzwerkverbindung für verschiedene Szenarien:

Netzwerkanforderungen für die Migration:

  • ExpressRoute-/IPsec-VPN-/VPN-Tunneling: Wenn Sie Ihre lokale/AWS-Quelle mit Azure verbinden, müssen Sie möglicherweise eine ExpressRoute, ein IPsec-VPN oder VPN-Tunneling einrichten, um eine sichere Datenübertragung zu ermöglichen.

  • VNet-Peering: Richten Sie Peering virtueller Netzwerke zwischen den beiden unterschiedlichen VNets ein, um die direkte Netzwerkkonnektivität zu ermöglichen, eine Voraussetzung für die Migration zwischen der Azure-VM und der Azure Database for PostgreSQL-Instanz.

Konnektivitätsszenarien:

Die folgende Tabelle kann beim Einrichten des Netzwerks zwischen der Quelle und dem Ziel helfen.

Quelle Ziel Konnektivitätstipps
Öffentlich Öffentlich Es ist keine andere Aktion erforderlich, wenn die Quelle in den Firewallregeln des Ziels in der Positivliste aufgeführt ist.
Privat Public Diese Konfiguration wird nicht unterstützt. Verwenden Sie pg_dump/pg_restore für die Datenübertragung.
Öffentlich Privat Es ist keine andere Aktion erforderlich, wenn die Quelle in den Firewallregeln des Ziels in der Positivliste aufgeführt ist.
Privat Privat Richten Sie eine ExpressRoute, ein IPsec-VPN, VPN-Tunneling oder Peering virtueller Netzwerke zwischen der Quelle und dem Ziel ein.
Privat Privater Endpunkt Diese Konfiguration wird nicht unterstützt. Wenden Sie sich an den Microsoft-Support.

Zusätzliche Überlegungen zum Netzwerk:

  • pg_hba.conf-Konfiguration: Um die Konnektivität zwischen den PostgreSQL-Quell- und Zielinstanzen zu unterstützen, ist es wichtig, die Datei pg_hba.conf zu überprüfen und gegebenenfalls zu ändern. Diese Datei enthält die Clientauthentifizierung und muss so konfiguriert sein, dass die PostgreSQL-Zielinstanz eine Verbindung mit der Quelle herstellen kann. Änderungen an der Datei pg_hba.conf erfordern in der Regel einen Neustart der PostgreSQL-Quellinstanz, um wirksam zu werden.

Hinweis

Die Datei pg_hba.conf befindet sich im Datenverzeichnis der PostgreSQL-Installation. Diese Datei sollte überprüft und konfiguriert werden, wenn es sich bei der Quelldatenbank um einen lokalen PostgreSQL-Server handelt, oder einen PostgreSQL-Server, der auf einer Azure-VM gehostet wird. Bei PostgreSQL-Instanzen auf AWS RDS oder ähnlichen verwalteten Diensten ist die Datei pg_hba.conf nicht direkt zugänglich oder anwendbar. Stattdessen wird der Zugriff über die bereitgestellten Sicherheits- und Netzwerkzugriffskonfigurationen des Diensts gesteuert.

Weitere Informationen zum Netzwerksetup finden Sie im Netzwerkhandbuch für den Migrationsdienst in Azure Database for PostgreSQL – Flexibler Server.

Erweiterungen

Erweiterungen sind zusätzliche Features, die PostgreSQL hinzugefügt werden können, um seine Funktionalität zu verbessern. Erweiterungen werden in Azure Database for PostgreSQL unterstützt, müssen jedoch manuell aktiviert werden. Führen Sie die folgenden Schritte aus, um Erweiterungen zu aktivieren:

  • Verwenden Sie den Befehl „auswählen“ in der Quelle, um alle Erweiterungen aufzulisten, die verwendet werden – select extname,extversion from pg_extension;

  • Suchen Sie auf der Seite „Serverparameter“ in Ihrer Azure Database for PostgreSQL-Instanz nach dem Serverparameter azure.extensions. Aktivieren Sie die Erweiterungen, die in der Quelle in PostgreSQL gefunden wurden.

  • Speichern Sie die Parameteränderungen, und starten Sie die Azure Database for PostgreSQL-Instanz neu, um die neue Konfiguration bei Bedarf anzuwenden.

    Screenshot der Erweiterungen.

  • Überprüfen Sie, ob die Liste eine der folgenden Erweiterungen enthält:

    • PG_CRON
    • PG_HINT_PLAN
    • PG_PARTMAN_BGW
    • PG_PREWARM
    • PG_STAT_STATEMENTS
    • PG_AUDIT
    • PGLOGICAL
    • WAL2JSON

Wenn ja, durchsuchen Sie die Seite „Serverparameter“ nach dem Parameter shared_preload_libraries. Dieser Parameter gibt den Satz von Erweiterungsbibliotheken an, der beim Neustart des Servers vorab geladen wird.

Benutzer und Rollen

Bei der Migration zu Azure Database for PostgreSQL ist es wichtig, die Migration von Benutzer*innen und Rollen separat zu behandeln, da sie manuelle Eingriffe erfordern:

  • Manuelle Migration von Benutzer*innen und Rollen: Benutzer*innen und ihre zugehörigen Rollen müssen manuell zur Azure Database for PostgreSQL-Instanz migriert werden. Um diesen Prozess zu unterstützen, können Sie das pg_dumpall-Hilfsprogramm mit der --globals-only-Kennzeichnung verwenden, um globale Objekte wie Rollen und Benutzerkonten zu exportieren. Führen Sie den folgenden Befehl aus, indem Sie <<username>> mit dem tatsächlichen Benutzernamen und <<filename>> mit dem von Ihnen gewünschten Ausgabedateinamen ersetzen:

    pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql
    
  • Einschränkung für Superuserrollen: Azure Database for PostgreSQL unterstützt keine Superuserrollen. Daher müssen für Benutzer*innen mit Berechtigungen als Superuser diese Berechtigungen vor der Migration entfernt werden. Stellen Sie sicher, dass Sie die Berechtigungen und Rollen entsprechend anpassen.

Indem Sie diese Schritte ausführen, können Sie sicherstellen, dass Benutzerkonten und Rollen ordnungsgemäß zur Azure Database for PostgreSQL-Instanz migriert werden, ohne dass Probleme im Zusammenhang mit Einschränkungen für Superuser auftreten.

Serverparameter

Diese Parameter werden nicht automatisch in die Zielumgebung migriert und müssen manuell konfiguriert werden.

  • Stimmen Sie Serverparameterwerte aus der PostgreSQL-Quelldatenbank mit der Azure Database for PostgreSQL-Instanz ab, indem Sie im Azure-Portal auf den Abschnitt „Serverparameter“ zugreifen und die Werte entsprechend manuell aktualisieren.

  • Speichern Sie die Parameteränderungen, und starten Sie die Azure Database for PostgreSQL-Instanz neu, um die neue Konfiguration bei Bedarf anzuwenden.

Deaktivieren der Hochverfügbarkeit (Zuverlässigkeit) und Lesereplikaten im Ziel

  • Das Deaktivieren der Hochverfügbarkeit (Zuverlässigkeit) und der Lesereplikate in der Zielumgebung ist unerlässlich. Diese Features sollten erst aktiviert werden, nachdem die Migration abgeschlossen wurde.

  • Wenn Sie diese Richtlinien befolgen, können Sie einen reibungslosen Migrationsprozess ohne die zusätzlichen Variablen sicherstellen, die durch Hochverfügbarkeit und Lesereplikate eingeführt wurden. Sobald die Migration abgeschlossen und die Datenbank stabil ist, können Sie diese Features aktivieren, um die Verfügbarkeit und Skalierbarkeit Ihrer Datenbankumgebung in Azure zu verbessern.

Sie können die Migration über das Azure-Portal durchführen.

Konfigurieren der Migrationsaufgabe

Der Migrationsdienst verfügt über eine einfache, Assistenten-basierte Erfahrung im Azure-Portal.

  1. Browsen Sie zum Portal. Geben Sie Ihre Anmeldeinformationen ein. Die Standardansicht ist Ihr Dienstdashboard.

  2. Navigieren Sie zu Ihrer Instanz von Azure Database for PostgreSQL – Flexibler Server.

  3. Scrollen Sie auf der Registerkarte Übersicht des flexiblen Servers im linken Menü nach unten zu Migration, und wählen Sie diese Option aus.

    Screenshot der Migrationsauswahl.

  4. Wählen Sie die Schaltfläche Erstellen aus, um von lokal oder Azure-VMs zu einem flexiblen Server zu migrieren.

    Hinweis

    Bei der ersten Verwendung des Migrationsdienstes erscheint ein leeres Raster mit einer Eingabeaufforderung, um mit Ihrer ersten Migration zu beginnen.

    Wenn Migrationen zu Ihrem flexiblen Serverziel bereits erstellt wurden, enthält das Raster jetzt Informationen zu versuchten Migrationen.

  5. Wählen Sie die Schaltfläche Erstellen aus, um eine Assistenten-basierte Reihe von Registerkarten zu durchlaufen, um eine Migration durchzuführen.

    Screenshot der Seite „Migration erstellen“.

Setup

Die erste Registerkarte ist die Registerkarte „Setup“.

Benutzer*innen müssen mehrere Details im Zusammenhang mit der Migration bereitstellen, z. B. den Migrationsnamen, den Quellservertyp, die Option und den Modus.

  • Beim Migrationsnamen handelt es sich um den eindeutigen Bezeichner für eine Migration zu diesem Flexible Server-Ziel. In dieses Feld dürfen nur alphanumerische Zeichen eingegeben werden, und mit Ausnahme von Bindestrichen (-) dürfen keine Sonderzeichen verwendet werden. Der Name darf nicht mit einem Bindestrich beginnen und muss für den Zielserver eindeutig sein. Zwei Migrationen zum selben Flexible Server-Ziel dürfen nicht denselben Namen aufweisen.

  • Quellservertyp – Abhängig von Ihrer PostgreSQL-Quelle können Sie Azure Database for PostgreSQL Single Server, lokal oder Azure-VM auswählen.

  • Migrationsoption – Ermöglicht es Ihnen, Validierungen durchzuführen, bevor Sie eine Migration auslösen. Sie können eine der folgenden Optionen auswählen:

    • Überprüfen: Mit dieser Option werden die Server- und Datenbankbereitschaft für die Migration zum Ziel überprüft.
    • Migrieren: Überspringt Überprüfungen und startet die Migration.
    • Überprüfen und migrieren: Führt eine Überprüfung durch, bevor eine Migration ausgelöst wird. Die Migration wird ausgelöst, wenn keine Validierungsfehler vorhanden sind.
      • Das Auswählen der Option Überprüfen oder Überprüfen und Migrieren ist immer eine gute Wahl, um vor dem Ausführen der Migration Validierungen durchzuführen.

Weitere Informationen zur Validierung vor der Migration finden Sie unter Vormigration.

  • Im Migrationsmodus können Sie den Modus für die Migration auswählen. Offline ist die Standardoption.

Wählen Sie die Schaltfläche Weiter: Mit Quelle verbinden aus.

Screenshot der Seite „Setupmigration“.

Mit der Quelle verbinden

Auf der Registerkarte Mit Quelle verbinden werden Sie aufgefordert, Details zu der Quelle anzugeben, die auf der Registerkarte „Setup“ ausgewählt und die Quelle der Datenbanken ist.

  • Servername – Geben Sie den Hostnamen oder die IP-Adresse der PostgreSQL-Quellinstanz an

  • Port – Portnummer des Quellservers

  • Anmeldename des Serveradministrators – Benutzername des PostgreSQL-Quellservers

  • Kennwort – Kennwort des PostgreSQL-Quellservers

  • SSL-Modus – Unterstützte Werte werden bevorzugt und sind erforderlich. Wenn SSL auf dem PostgreSQL-Quellserver DEAKTIVIERT ist, verwenden Sie SSLMODE=prefer. Wenn SSL auf dem Quellserver AKTIVIERT ist, verwenden Sie SSLMODE=require. SSL-Werte können in der Datei postgresql.conf bestimmt werden.

  • Verbindung testen – Führt den Verbindungstest zwischen Ziel und Quelle durch. Sobald die Verbindung erfolgreich hergestellt ist, können Benutzer*innen mit dem nächsten Schritt fortfahren. Sie müssen die Netzwerkprobleme zwischen dem Ziel und der Quelle identifizieren und den Benutzernamen/das Kennwort für die Quelle überprüfen. „Verbindung testen“ benötigt einige Minuten, um eine Verbindung zwischen Ziel und Quelle herzustellen.

Wählen Sie nach dem erfolgreichen Testen der Verbindung die Schaltfläche Weiter: Migrationsziel auswählen aus.

Screenshot der Seite „Quellmigration verbinden“.

Stellen Sie eine Verbindung zur

Auf der Registerkarte Migrationsziel auswählen werden Metadaten für das Flexibler Server-Ziel angezeigt, z. B. Abonnementname, Ressourcengruppe, Servername, Speicherort und PostgreSQL-Version.

  • Administratorbenutzername – Administratorbenutzername des PostgreSQL-Zielservers

  • Kennwort – Kennwort des PostgreSQL-Zielservers

  • Verbindung testen – Führt den Verbindungstest zwischen Ziel und Quelle durch. Sobald die Verbindung erfolgreich hergestellt ist, können Benutzer*innen mit dem nächsten Schritt fortfahren. Andernfalls müssen wir die Netzwerkprobleme zwischen dem Ziel und der Quelle identifizieren und den Benutzernamen/das Kennwort für das Ziel überprüfen. „Verbindung testen“ benötigt einige Minuten, um eine Verbindung zwischen Ziel und Quelle herzustellen

Wählen Sie nach dem erfolgreichen Test der Verbindung die Option Weiter: Datenbank(en) für die Migration auswählen aus

Screenshot der Seite „Zielmigration verbinden“.

Auswählen von Datenbanken für die Migration

Unter der Registerkarte Datenbank für die Migration auswählen können Sie eine Liste der Benutzerdatenbanken auswählen, die von Ihrem PostgreSQL-Quellserver migriert werden sollen.

Nachdem Sie die Datenbanken ausgewählt haben, wählen Sie Weiter: Zusammenfassung aus.

Screenshot der fetchDB-Migrationsseite.

Zusammenfassung

Auf der Registerkarte Zusammenfassung werden alle Quell- und Zieldetails zum Erstellen der Validierung oder Migration zusammengefasst. Überprüfen Sie die Details, und wählen Sie die Schaltfläche Validierung und Migration starten aus.

Screenshot der Zusammenfassungsmigrationsseite.

Überwachen der Migration

Nachdem Sie die Schaltfläche Validierung und Migration starten ausgewählt haben, wird nach einigen Sekunden eine Benachrichtigung angezeigt, die Sie informiert, dass die Validierungs- oder Migrationserstellung erfolgreich war. Sie werden automatisch auf die Migrationsseite des flexiblen Servers umgeleitet. Der Eintrag befindet sich im Status InProgress und dem Substatus PerformingPreRequisiteSteps. Der Workflow benötigt 2 bis 3 Minuten, um die Migrationsinfrastruktur einzurichten und die Netzwerkverbindungen zu überprüfen.

Screenshot der Seite „Migration überwachen“.

Das Raster, in dem die Migrationen angezeigt werden, enthält diese Spalten: Name, Status, Migrationsmodus, Migrationstyp, Quellserver, Quellservertyp, Datenbanken, Dauer und Startzeit. Die Einträge werden in absteigender Reihenfolge nach Startzeit angezeigt, mit dem aktuellsten Eintrag zuoberst. Sie können die Schaltfläche „Aktualisieren“ verwenden, um den Status der Validierungs- oder Migrationsausführung zu aktualisieren.

Details zur Migration

Wählen Sie den Migrationsnamen im Raster aus, um die zugehörigen Details anzuzeigen.

Auf der Registerkarte Setup haben wir die Migrationsoption als Überprüfen und Migrieren ausgewählt. In diesem Szenario werden Validierungen als erstes ausgeführt, bevor die Migration startet. Nach Abschluss des Substatus PerformingPreRequisiteSteps wechselt der Workflow in den Substatus Validierung in Arbeit.

  • Wenn bei der Überprüfung Fehler auftreten, wechselt die Migration in den Zustand Fehler.

  • Wenn die Validierung ohne Fehler abgeschlossen ist, wird die Migration gestartet, und der Workflow wechselt in den Substatus Migrieren von Daten.

Validierungsdetails sind auf Instanz- und Datenbankebene verfügbar.

  • Validierung auf Instanzebene
    • Enthält eine Validierung im Zusammenhang mit der Verbindungsüberwachung, Quellversion, d. h. PostgreSQL-Version >= 9.5, Serverparameterüberprüfung, d. h., wenn die Erweiterungen in den Serverparametern der Instanz von Azure Database for PostgreSQL – Flexibler Server aktiviert sind.
  • Validierung auf Datenbankebene
    • Dies enthält eine Validierung der einzelnen Datenbanken im Zusammenhang mit Erweiterungen und Sortierungsunterstützung in Azure Database for PostgreSQL, einem flexiblen Server.

Sie können den Status der Validierung und der Migration auf der Seite mit den Migrationsdetails anzeigen. Screenshot der Details mit Überprüfung und Migration.

Es gibt folgende Migrationszustände:

  • InProgress: Die Migrationsinfrastruktur wird eingerichtet, oder die tatsächliche Datenmigration wird aktuell ausgeführt.
  • Abgebrochen: Die Migration wurde abgebrochen oder gelöscht.
  • Failed: Bei der Migration ist ein Fehler aufgetreten.
  • Fehler bei Überprüfung: Bei der Überprüfung ist ein Fehler aufgetreten.
  • Succeeded: Die Migration wurde erfolgreich durchgeführt und ist beendet.
  • WaitingForUserAction: Gilt nur für die Onlinemigration. Warten auf Benutzeraktion zum Ausführen des Cutover.

Es gibt folgende Migrationsunterzustände:

  • PerformingPreRequisiteSteps: Das Einrichten der Infrastruktur wird für die Datenmigration ist in Arbeit.
  • Überprüfung wird ausgeführt: Die Überprüfung wird ausgeführt.
  • MigratingData: Die Datenmigration wird aktuell ausgeführt.
  • CompletingMigration: Die Migration befindet sich in den letzten Phasen vor dem Abschluss.
  • Abgeschlossen: Die Migration wurde abgeschlossen.
  • Fehlgeschlagen: Die Migration ist fehlgeschlagen.

Mögliche Substatus der Validierung sind:

  • Fehlgeschlagen: Die Validierung ist fehlgeschlagen.
  • Erfolgreich: Die Validierung ist erfolgreich.
  • Warnung: Die Validierung befindet sich im Substatus „Warnung“. Warnungen sind informative Meldungen, die Sie beim Planen der Migration berücksichtigen müssen.

Abbrechen der Migration über das Portal

Sie können alle aktuellen Überprüfungen oder Migrationen abbrechen. Der Workflow muss sich im Zustand InProgress befinden, damit er abgebrochen werden kann. Sie können keine Überprüfung oder Migration abbrechen, die sich im Zustand Erfolgreich oder Fehler befindet.

  • Durch das Abbrechen einer Überprüfung werden weitere Überprüfungsaktivitäten beendet, und die Überprüfung wechselt in den Zustand Abgebrochen.
  • Bei Abbruch einer Migration werden alle weiteren Migrationsaktivitäten auf dem Zielserver gestoppt, und sie wechseln in den Zustand Abgebrochen. Die Aktion „Abbrechen“ führt ein Rollback aller Änderungen aus, die vom Migrationsdienst auf Ihrem Zielserver vorgenommen wurden.

Nach der Migration

Nach Abschluss der Datenbanken müssen Sie die Daten zwischen Quelle und Ziel manuell validieren und überprüfen, ob alle Objekte in der Zieldatenbank erfolgreich erstellt wurden.

Nach der Migration können Sie die folgenden Aufgaben ausführen:

  • Überprüfen Sie die Daten auf Ihrem flexiblen Server, und stellen Sie sicher, dass es sich um eine genaue Kopie der Quellinstanz handelt.

  • Nach der Überprüfung aktivieren Sie die Option für Hochverfügbarkeit auf Ihrem flexiblen Server nach Bedarf.

  • Ändern Sie die SKU des flexiblen Servers entsprechend den Anwendungsanforderungen. Diese Änderung erfordert einen Neustart des Datenbankservers.

  • Wenn Sie Serverparameter gegenüber ihren Standardwerten in der Quellinstanz ändern, kopieren Sie diese Serverparameterwerte auf den flexiblen Server.

  • Kopieren Sie andere Servereinstellungen wie Tags, Warnungen und Firewallregeln (falls zutreffend) von der Quellinstanz auf den flexiblen Server.

  • Nehmen Sie Änderungen an Ihrer Anwendung vor, um die Verbindungszeichenfolgen auf einen flexiblen Server zu verweisen.

  • Überwachen Sie die Datenbankleistung genau, um festzustellen, ob Leistungsoptimierung erforderlich ist.