Tutorial: Migrieren von RDS PostgreSQL zu Azure Database for PostgreSQL (online) mit DMS
Wichtig
Wir empfehlen, dass Sie für eine optimierte und effizientere Migration den neuen Migrationsdienst in Azure Database for PostgreSQL verwenden. Dieser Dienst vereinfacht den Ablauf durch die Unterstützung einer Vielzahl von Quellumgebungen und stellt dadurch einen problemlosen Übergang zu Azure Database for PostgreSQL sicher.
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
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.
Die Azure Database for PostgreSQL-Zielversion muss höher als die RDS PostgreSQL-Version sein oder dieser entsprechen. 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 - Flexible 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.
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 Firewall-Regeln hinzufügen, um Azure Database Migration Service für die Migration den Zugriff auf die Quelldatenbanken zu erlauben.
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
Um eine neue Parametergruppe zu erstellen, befolgen Sie die von AWS im Artikel Arbeiten mit DB-Parametergruppen bereitgestellten Anweisungen.
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.
Erstellen Sie eine neue Parametergruppe mit der folgenden Konfiguration:
Setzen Sie den
rds.logical_replication
-Parameter in der DB-Parametergruppe auf1
.max_wal_senders
= [Anzahl gleichzeitiger Aufgaben]. Dermax_wal_senders
-Parameter legt die Anzahl gleichzeitiger Aufgaben fest, die ausgeführt werden können. Empfohlene Einstellung:10
.max_replication_slots
= [Anzahl der Slots]. Empfohlene Einstellung:5
.
Ordnen Sie die Parametergruppe, die Sie erstellt haben, der RDS PostgreSQL-Instanz zu.
Migrieren des Schemas
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
Erstellen Sie eine leere Datenbank im Zieldienst Azure Database for PostgreSQL- Flexibler Server.
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.
Melden Sie sich beim Azure-Portal an. Suchen Sie nach Abonnements, und wählen Sie diese Option aus.
Wählen Sie das Abonnement aus, in dem Sie die Azure Database Migration Service-Instanz erstellen möchten, und klicken Sie dann auf Ressourcenanbieter.
Suchen Sie nach „Migration“, und wählen Sie dann Registrieren für Microsoft.DataMigration aus.
Erstellen einer Instanz von Azure Database Migration Service
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.
Wählen Sie auf dem Bildschirm Azure Database Migration Service die Schaltfläche Erstellen aus.
Geben Sie auf dem Bildschirm Migrationsdienst erstellen einen Namen für den Dienst, das Abonnement und eine neue oder vorhandene Ressourcengruppe an.
Wählen Sie den Standort aus, an dem Sie die Azure Database Migration Service-Instanz erstellen möchten.
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.
Wählen Sie einen Tarif. Für diese Onlinemigration wählen Sie Premium: 4vCores-Tarif.
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.
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 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.
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.
Wählen Sie im Abschnitt Aktivitätstyp auswählen die Option Onlinedatenmigration aus.
Wichtig
Wählen Sie Onlinedatenmigration. Offline-Migrationen werden für dieses Szenario nicht unterstützt.
Alternativ können Sie Nur Projekt erstellen auswählen, um das Migrationsprojekt jetzt zu erstellen und die Migration später durchzuführen.
Wählen Sie Speichern aus.
Klicken Sie auf Aktivität erstellen und ausführen, um das Projekt zu erstellen und die Migrationsaktivität auszuführen.
Notieren Sie sich die Voraussetzungen für die Einrichtung der Onlinemigration auf dem Projekterstellungsbereich.
Angeben von Quelldetails
Geben Sie auf dem Bildschirm Quelldetails hinzufügen die Verbindungsinformationen für die PostgreSQL-Quellinstanz an.
Angeben von Zieldetails
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.
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.
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.
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
Klicken Sie auf dem Bildschirm „Migrationsaktivität“ auf Aktualisieren, um die Anzeige zu aktualisieren, bis der Status der Migration Ausgeführt lautet.
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.
Durchführen der Migrationsübernahme
Wenn der erste vollständige Ladevorgang abgeschlossen ist, werden die Datenbanken als Zur Übernahme bereit markiert.
Wenn Sie die Datenmigration abschließen möchten, klicken Sie auf Übernahme starten.
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.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.