Zelfstudie: PostgreSQL online migreren naar Azure DB for PostgreSQL met behulp van DMS en de Azure-portal

U kunt Azure Database Migration Service gebruiken om de databases met minimale downtime voor de toepassing te migreren van een on-premises PostgreSQL-exemplaar naar Azure Database for MySQL. In deze zelfstudie migreert u de voorbeelddatabase DVD Rental van een on-premises exemplaar van PostgreSQL 9.6 naar Azure Database for PostgreSQL met behulp van een onlinemigratieactiviteit in Azure Database Migration Service.

In deze zelfstudie leert u het volgende:

  • Migreer het voorbeeldschema met behulp van het hulpprogramma pg_dump.
  • Maak een exemplaar van de Azure Database Migration Service.
  • Maak een migratieproject in Azure Database Migration Service.
  • De migratie uitvoeren.
  • Houd de migratie in de gaten.
  • Voer de migratie-cutover uit.

Notitie

Als u Azure Database Migration Service gebruikt om een onlinemigratie uit te voeren, is het vereist dat u een exemplaar maakt op basis van de prijscategorie Premium. De schijf wordt versleuteld om diefstal van gegevens tijdens het migratieproces te voorkomen.

Belangrijk

Voor een optimale migratie-ervaring raadt Microsoft u aan een exemplaar van Azure Database Migration Service te maken in dezelfde Azure-regio als de doeldatabase. Het verplaatsen van gegevens naar regio's of geografieën kan het migratieproces vertragen en fouten veroorzaken.

Vereisten

Voor het voltooien van deze zelfstudie hebt u het volgende nodig:

  • Download en installeer PostgreSQL community edition 9.4, 9.5, 9.6 of 10. De bronversie van PostgreSQL Server moet 9.4, 9.5, 9.6, 10, 11, 12 of 13 zijn. Zie Ondersteunde PostgreSQL-databaseversies voor meer informatie.

    Houd er ook rekening mee dat de doelversie van Azure Database for PostgreSQL gelijk moet zijn aan of hoger moet zijn dan de on-premises PostgreSQL-versie. PostgreSQL 9.6 kan bijvoorbeeld alleen worden gemigreerd naar Azure Database for PostgreSQL 9.6, 10 of 11 maar niet naar Azure Database for PostgreSQL 9.5.

  • Maak een Azure Database for PostgreSQL-server of maak een Azure Database for PostgreSQL - Hyperscale (Citus)-server.

  • Maak een Microsoft Azure Virtual Network voor Azure Database Migration Service met behulp van het Azure Resource Manager-implementatiemodel. Dit geeft site-naar-site-verbinding met uw on-premises bronservers met behulp van ExpressRoute of VPN. Voor meer informatie over het maken van een virtueel netwerk raadpleegt u de documentatie over virtuele netwerken en dan met name de quickstart-artikelen met stapsgewijze informatie.

    Notitie

    Als u bij de installatie van een virtueel netwerk gebruikmaakt van ExpressRoute met netwerkpeering voor Microsoft, voegt u de volgende service-eindpunten toe aan het subnet waarin de service wordt ingericht:

    • Eindpunt van de doeldatabase (bijvoorbeeld SQL-eindpunt, Cosmos DB-eindpunt, enzovoort)
    • Opslageindpunt
    • Service Bus-eindpunt

    Deze configuratie is noodzakelijk omdat Azure Database Migration Service geen internetverbinding biedt.

  • Zorg ervoor dat de regels voor de netwerkbeveiligingsgroep (NSG) voor uw virtuele netwerk de uitgaande poort 443 van ServiceTag voor ServiceBus, Storage en AzureMonitor niet blokkeren. Zie het artikel Netwerkverkeer filteren met netwerkbeveiligingsgroepen voor meer informatie over verkeer filteren van verkeer via de netwerkbeveiligingsgroep voor virtuele netwerken.

  • Configureer uw Windows Firewall voor toegang tot de database-engine.

  • Stel uw Windows-firewall open voor toegang van Azure Database Migration Service tot de oorspronkelijke PostgreSQL Server. Standaard verloopt dit via TCP-poort 5432.

  • Wanneer u een firewallapparaat gebruikt voor de brondatabase(s), moet u mogelijk firewallregels toevoegen om voor de Azure Database Migration Service toegang tot de brondatabase(s) voor de migratie toe te staan.

  • Maak een firewallregel op serverniveau voor Azure Database for PostgreSQL om Azure Database Migration Service toegang te bieden tot de doeldatabases. Geef het subnetbereik van het virtuele netwerk op dat wordt gebruikt voor Azure Database Migration Service.

  • Schakel logische replicatie in het bestand postgresql.config in en stel de volgende parameters in:

    • wal_level = logical
    • max_replication_slots = [aantal sleuven], aanbevolen instelling is vijf sleuven
    • max_wal_senders = [aantal gelijktijdige taken]: met de parameter max_wal_senders stelt u het aantal taken in dat gelijktijdig kan worden uitgevoerd. De aanbevolen instelling is 10 taken

Belangrijk

Alle tabellen in uw bestaande database hebben een primaire sleutel nodig om ervoor te zorgen dat de wijzigingen kunnen worden gesynchroniseerd met de doeldatabase.

Het voorbeeldschema migreren

Om alle databaseobjecten zoals tabelschema’s, indexen en opgeslagen procedures te voltooien, moeten we het schema uit de brondatabase extraheren en op de database toepassen.

  1. Gebruik de opdracht pg_dump -s om een dumpbestand van het schema te maken voor een database.

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

    Als u bijvoorbeeld een schema-dumpbestand wilt maken voor de database dvdrental:

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

    Zie voor meer informatie over het gebruik van het hulpprogramma pg_dump de voorbeelden in de zelfstudie pg-dump.

  2. Maak een lege database maken in uw doelomgeving, dit is Azure Database for PostgreSQL.

    Raadpleeg het artikel Create an Azure Database for PostgreSQL server in the Azure portal (Een Azure Database for PostgreSQL-server maken in Azure Portal) of Create an Azure Database for PostgreSQL - Hyperscale (Citus) server in the Azure portal (Een Azure Database for PostgreSQL - Hyperscale (Citus)-server maken in de Azure-portal) voor meer informatie over hoe u een database maakt en verbindt.

    Notitie

    Een exemplaar van Azure Database for PostgreSQL - Hyperscale (Citus) heeft slechts één database: citus.

  3. Importeer het schema in de doeldatabase die u hebt gemaakt, door het dumpbestand van het schema te herstellen.

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

    Bijvoorbeeld:

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

    Notitie

    De migratieservice verwerkt intern het in-/uitschakelen van externe sleutels en triggers om een betrouwbare en robuuste gegevensmigratie te garanderen. Als gevolg hiervan hoeft u zich geen zorgen te maken over het aanbrengen van wijzigingen in het doeldatabaseschema.

Registreer de Microsoft.DataMigration-resourceprovider

  1. Meld u aan bij Azure Portal. Zoek en selecteer Abonnementen.

    Portal-abonnementen weergeven

  2. Selecteer het abonnement waarin u het Azure Database Migration Service-exemplaar wilt maken en selecteer vervolgens Resourceproviders.

    Resourceproviders weergeven

  3. Zoek naar migratie en selecteer Registreren voor Microsoft.DataMigration.

    Resourceprovider registreren

Een DMS-exemplaar maken

  1. Selecteer in de Azure-portal Een resource maken, zoek naar Azure Database Migration Service, en selecteer vervolgens Azure Database Migration Service uit de vervolgkeuzelijst.

    Azure Marketplace

  2. Selecteer in het scherm Azure Database Migration Service****Maken.

    Azure Database Migration Service-exemplaar maken

  3. Geef in het scherm Migratieservice maken een naam op voor de service, het abonnement, een nieuwe of bestaande resourcegroep en de locatie.

  4. Selecteer een bestaand virtueel netwerk of maak een nieuw netwerk.

    Het virtuele netwerk biedt Azure Database Migration Service toegang tot de bronserver van PostgreSQL en het doelexemplaar van Azure Database for PostgreSQL.

    Zie het artikel Een virtueel netwerk maken met de Azure-portal voor meer informatie over het maken van een virtueel netwerk in de Azure-portal.

  5. Selecteer een prijscategorie.

    Zie voor meer informatie over de kosten en prijscategorieën de Pagina met prijzen.

    Instellingen configureren van een Azure Database Migration Service-exemplaar

  6. Selecteer Beoordelen en maken om de service te maken.

    Het maken van een service duurt ongeveer 10 tot 15 minuten.

Een migratieproject maken

Nadat de service is gemaakt, zoek deze op in de Azure-portal, open hem en maak vervolgens een nieuw migratieproject.

  1. Selecteer in de Azure-portal Alle diensten, zoek naar Azure Database Migration Service, en selecteer vervolgens Azure Database Migration Service.

    Zoek alle exemplaren van Azure Database Migration Service

  2. Zoek in het scherm Azure Database Migration service naar de naam van de Azure Database Migration Service-instantie die u hebt gemaakt, selecteer de instantie en selecteer vervolgens Nieuw migratieproject.

  3. Geef in het scherm Nieuw migratieproject een naam op voor het project, selecteer in het tekstvak Bronservertype de optie PostgreSQL en selecteer in het tekstvak Doelservertype de optie Azure Database for PostgreSQL.

  4. Selecteer in de sectie Het type activiteit kiezen de optie Onlinegegevensmigratie.

    Azure Database Migration Service-project maken

    Notitie

    U kunt ook Alleen project maken kiezen om het migratieproject nu te maken en de migratie later uit te voeren.

  5. Selecteer Opslaan, lees de vereisten om met Azure Database Migration Service gegevens te migreren en selecteer vervolgens Activiteit maken en uitvoeren.

Geef brondetails op

  1. Geef in het scherm Brondetails toevoegen de verbindingsgegevens op voor het bronexemplaar van PostgreSQL.

    Scherm Brondetails toevoegen

  2. Selecteer Opslaan.

Doeldetails opgeven

  1. Geef in het scherm Doeldetails de verbindingsgegevens op voor de Hyperscale (Citus)-doelserver. Dit is het vooraf ingerichte exemplaar van Hyperscale (Citus) waarnaar het schema DVD Rentals is geïmplementeerd met behulp van pg_dump.

    Scherm Doeldetails

  2. Selecteer Opslaan, en klik vervolgens in het scherm Toewijzen aan doeldatabases, wijs de bron- en de doeldatabase voor de migratie toe.

    Als de doeldatabase de naam van de dezelfde database als de bron-database bevat, wordt in Azure Database Migration Service de doeldatabase standaard geselecteerd.

    Scherm Toewijzen aan doeldatabases

  3. Selecteer Opslaan en accepteer vervolgens de standaardwaarden in het scherm Migratie-instellingen.

    Scherm Migratie-instellingen

  4. Selecteer Opslaan, geef op het scherm Migratieoverzicht in het tekstvak Naam activiteit een naam op voor de migratieactiviteit, en controleer vervolgens het overzicht om te verzekeren dat de bron- en doeldetails overeenkomen met wat u eerder hebt opgegeven.

    Scherm Migratieoverzicht

De migratie uitvoeren

  • Selecteer Migratie uitvoeren.

    Het venster van de migratieactiviteit wordt weergegeven en de status van de activiteit moet nu Back-up wordt uitgevoerd zijn.

Bewaak de migratie

  1. Selecteer op het scherm van de migratieactiviteit de optie Vernieuwen om de weergave bij te werken totdat de Status van de migratie als Voltooid wordt weergegeven.

    Migratievoortgang controleren

  2. Als de migratie is voltooid, selecteert u onder Databasenaam een specifieke database om de migratiestatus voor de bewerkingen Alle gegevens worden geladen en Incrementele gegevenssynchronisatie te bekijken.

    Notitie

    Alle gegevens worden geladen toont de migratiestatus van de eerste lading terwijl Incrementele gegevenssynchronisatie de CDC-status (Change Data Capture) toont.

    Details van Alle gegevens worden geladen

    Details van Incrementele gegevenssynchronisatie

Migratie-cutover uitvoeren

Nadat de eerste volledige lading is voltooid, worden de databases gemarkeerd als Gereed voor cutover.

  1. Wanneer u klaar bent om de databasemigratie te voltooien, selecteert u Cutover starten.

  2. Wacht tot de teller Wijzigingen in behandeling op 0 staat om er zeker van te zijn dat alle inkomende transacties naar de brondatabase zijn gestopt. Schakel dan het selectievakje Bevestigen in en selecteer Toepassen.

    Scherm Cutover voltooien

  3. Wanneer de databasemigratie de status Voltooid heeft, maakt u de reeksen opnieuw (indien van toepassing) en verbindt u uw toepassingen met de nieuwe doelinstantie van Azure Database for PostgreSQL.

Volgende stappen