Delen via


Online migreren van een Google Cloud SQL for PostgreSQL-server naar Azure Database for PostgreSQL met de migratieservice

In dit artikel wordt u begeleid bij het migreren van een PostgreSQL-exemplaar van uw on-premises of virtuele Azure-machines (VM's) naar Azure Database for PostgreSQL in de onlinemodus.

De migratieservice in Azure Database for PostgreSQL is een volledig beheerde service die is geïntegreerd in Azure Portal en Azure CLI. Het is ontworpen om uw migratietraject naar de flexibele Azure Database for PostgreSQL-server te vereenvoudigen.

  • Vereiste voorwaarden
  • De migratie uitvoeren
  • De migratie bewaken
  • De overgang starten
  • De migratie controleren wanneer deze is voltooid

Vereiste voorwaarden

U hebt de volgende vereisten nodig om de migratie te starten:

Voordat u de migratie met de Azure Database for PostgreSQL-migratieservice start, is het belangrijk om te voldoen aan de volgende vereisten, speciaal ontworpen voor onlinemigratiescenario's.

De bronversie controleren

De bronversie van de PostgreSQL-server moet 9.5 of hoger zijn.

Als de postgreSQL-bronversie kleiner is dan 9.5, moet u deze upgraden naar 9.5 of hoger voordat u de migratie start.

Opmerking

De migratieservice in Azure Database for PostgreSQL ondersteunt verbindingen met behulp van het IP-adres voor bron Google Cloud SQL for PostgreSQL. De indeling myproject:myregion:myinstance wordt niet ondersteund.

Test_decoding installeren - broninstallatie

  • test_decoding ontvangt WAL via het logische decoderingsmechanisme en decodeert het naar tekstweergaven van de uitgevoerde bewerkingen.
  • In Google Cloud SQL for PostgreSQL is de test_decoding-invoegtoepassing vooraf geïnstalleerd en gereed voor logische replicatie. Hierdoor kunt u eenvoudig logische replicatiesites instellen en WAL-wijzigingen streamen, waardoor gebruiksvoorbeelden zoals change data capture (CDC) of replicatie naar externe systemen worden vergemakkelijkt.
  • Zie de PostgreSQL-documentatie voor meer informatie over de testdecoderingsinvoegtoepassing

Doelinstellingen configureren

  • Voordat u migreert, moet azure Database for PostgreSQL - Flexibele server worden gemaakt.
  • De SKU die is ingericht voor Azure Database for PostgreSQL – Flexible Server moet overeenkomen met de brongegevens.
  • Om een nieuwe Azure Database voor PostgreSQL te maken, bezoek Create an Azure Database for PostgreSQL flexible server

CDC inschakelen als bron

  • test_decoding De invoegtoepassing voor logische decodering legt de gewijzigde records van de bron vast.
  • Voer de volgende SQL-opdracht uit om ervoor te zorgen dat de migratiegebruiker over de benodigde replicatiebevoegdheden beschikt:
ALTER USER <user> WITH REPLICATION;
  • Ga naar het Google Cloud SQL PostgreSQL-exemplaar in de Google Cloud Console, selecteer de naam van het exemplaar om de detailpagina te openen, selecteer de knop Bewerken en wijzig in de sectie Vlaggen de volgende vlaggen:

    • Vlag instellen cloudsql.logical_decoding = on
    • max_replication_slots Vlag instellen op een waarde groter dan één; de waarde moet groter zijn dan het aantal databases dat is geselecteerd voor migratie.
    • max_wal_senders Vlag instellen op een waarde groter dan één. Dit moet ten minste hetzelfde zijn als max_replication_slots, plus het aantal afzenders dat al op uw exemplaar wordt gebruikt.
    • De vlag wal_sender_timeout beëindigt replicatieverbindingen die langer inactief zijn dan het opgegeven aantal milliseconden. Als u de waarde instelt op 0 (nul), wordt het time-outmechanisme uitgeschakeld en is dit een geldige instelling voor migratie.
  • Zorg er op de flexibele doelserver voor dat de onlinemigratie geen opslagruimte meer heeft om de logboeken op te slaan. Zorg er dan voor dat u voldoende tabelruimte hebt met behulp van een ingerichte beheerde schijf. Om dit te bereiken, schakelt u de serverparameter azure.enable_temp_tablespaces_on_local_ssd uit voor de duur van de migratie en herstelt u deze naar de oorspronkelijke status na de migratie.

Netwerkconfiguratie configureren

Het instellen van het netwerk is essentieel voor de juiste werking van de migratieservice. Zorg ervoor dat de PostgreSQL-bronserver kan communiceren met de Azure Database for PostgreSQL-doelserver. De volgende netwerkconfiguraties zijn essentieel voor een geslaagde migratie.

Ga naar de netwerkhandleiding voor migratieservice voor informatie over de netwerkinstallatie.

Extensies inschakelen

Als u wilt zorgen voor een geslaagde migratie met behulp van de migratieservice in Azure Database for PostgreSQL, moet u mogelijk extensies verifiëren voor uw postgreSQL-bronexemplaren. Extensies bieden functionaliteit en functies die mogelijk vereist zijn voor uw toepassing. Zorg ervoor dat u de extensies op het PostgreSQL-bronexemplaren controleert voordat u het migratieproces start.

Schakel in het doelexemplaar van de Azure Database for PostgreSQL flexible server de ondersteunde extensies in die zijn geïdentificeerd in het PostgreSQL-bronexemplaar.

Zie Extensies en modules voor meer informatie.

Serverparameters controleren

Deze parameters worden niet automatisch gemigreerd naar de doelomgeving en moeten handmatig worden geconfigureerd.

  • Koppel de serverparameterwaarden van de PostgreSQL-brondatabase aan de Azure Database for PostgreSQL door toegang te krijgen tot de sectie Serverparameters in Azure Portal en de waarden dienovereenkomstig handmatig bij te werken.

  • Sla de parameterwijzigingen op en start de Azure Database for PostgreSQL opnieuw om zo nodig de nieuwe configuratie toe te passen.

Controleer gebruikers en rollen

Wanneer u migreert naar Azure Database for PostgreSQL, is het essentieel om de migratie van gebruikers en rollen afzonderlijk aan te pakken, omdat hiervoor handmatige tussenkomst is vereist:

  • Handmatige migratie van gebruikers en rollen: gebruikers en hun bijbehorende rollen moeten handmatig worden gemigreerd naar azure Database for PostgreSQL. Om dit proces te vergemakkelijken, kunt u het pg_dumpall hulpprogramma met de --globals-only vlag gebruiken om globale objecten, zoals rollen en gebruikersaccounts, te exporteren. Voer de volgende opdracht uit, waarbij u <<username>> de werkelijke gebruikersnaam en <<filename>> de gewenste naam van het uitvoerbestand vervangt:

    pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql
    
  • Beperking voor supergebruikersrollen: Azure Database for PostgreSQL biedt geen ondersteuning voor supergebruikersrollen. Daarom moeten gebruikers met supergebruikersbevoegdheden deze bevoegdheden vóór de migratie verwijderen. Zorg ervoor dat u de machtigingen en rollen dienovereenkomstig aanpast.

Door deze stappen te volgen, kunt u ervoor zorgen dat gebruikersaccounts en -rollen correct worden gemigreerd naar Azure Database for PostgreSQL zonder problemen met betrekking tot supergebruikersbeperkingen.

Schakel hoge beschikbaarheid (betrouwbaarheid) en leesreplica's in het doelobject uit.

  • Het uitschakelen van hoge beschikbaarheid (betrouwbaarheid) en leesreplica's in de doelomgeving is essentieel. Deze functies moeten alleen worden ingeschakeld nadat de migratie is voltooid.

  • Door deze richtlijnen te volgen, kunt u een soepel migratieproces waarborgen zonder de extra variabelen die worden geïntroduceerd door HA en Read Replicas. Zodra de migratie is voltooid en de database stabiel is, kunt u doorgaan met het inschakelen van deze functies om de beschikbaarheid en schaalbaarheid van uw databaseomgeving in Azure te verbeteren.

De migratie uitvoeren

U kunt migreren met behulp van Azure Portal of Azure CLI.

In dit artikel wordt u begeleid bij het gebruik van Azure Portal om uw PostgreSQL-database te migreren van een Google Cloud SQL for PostgreSQL-server naar een Azure Database for PostgreSQL. Met Azure Portal kunt u verschillende taken uitvoeren, waaronder databasemigratie. Als u de stappen in deze zelfstudie volgt, kunt u uw database naadloos overdragen naar Azure en profiteren van de krachtige functies en schaalbaarheid.

De migratietaak configureren

De migratieservice wordt geleverd met een eenvoudige, wizardgebaseerde ervaring in Azure Portal.

Gebruik de Azure-portal:

  1. Selecteer uw Azure Database voor PostgreSQL-flexibele server.

  2. Selecteer Migratie in het resourcemenu.

    Schermopname van de pagina Migratie.

  3. Selecteer Maken om via een reeks wizard-tabbladen een migratie naar een flexibele server vanaf on-premises of een Azure VM te starten.

    Opmerking

    De eerste keer dat u de migratieservice gebruikt, wordt er een leeg raster weergegeven met een prompt om uw eerste migratie te starten.

    Als migraties naar uw flexibele serverdoel al zijn gemaakt, bevat het raster nu informatie over geprobeerde migraties.

    Schermopname van het tabblad Setup dat wordt weergegeven nadat u Maken hebt geselecteerd op de pagina Migratie.

Configuratie

U moet meerdere details opgeven met betrekking tot de migratie, zoals de migratienaam, het type bronserver, de optie en de modus.

  • De migratienaam is de unieke id voor elke migratie naar dit flexibele serverdoel. Dit veld accepteert alleen alfanumerieke tekens en accepteert geen speciale tekens, behalve een afbreekstreepje (-). De naam kan niet beginnen met een afbreekstreepje en moet uniek zijn voor een doelserver. Er kunnen geen twee migraties naar hetzelfde flexibele serverdoel dezelfde naam hebben.

  • Bronservertype : afhankelijk van uw PostgreSQL-bron, kunt u azure Virtual Machine of on-premises server selecteren.

  • Migratieoptie : hiermee kunt u validaties uitvoeren voordat u een migratie activeert. U kunt een van de volgende opties kiezen:

    • Valideren : controleert de gereedheid van uw server en database voor migratie naar het doel.
    • Valideren en migreren : voert validatie uit voordat een migratie wordt geactiveerd. Als er geen validatiefouten zijn, wordt de migratie gestart.

Het kiezen van de optie Valideren of Valideren en migreren is altijd een goede gewoonte voor het uitvoeren van premigratievalidaties voordat u de migratie uitvoert.

Bezoek premigratie voor meer informatie over premigratievalidatie.

  • Met de migratiemodus kunt u de modus voor de migratie kiezen. Offline is de standaardoptie. In dit geval wijzigen we deze in Online.

Selecteer Volgende: Runtime-server.

Schermopname van het tabblad Setup nadat u de benodigde details hebt opgegeven.

Runtime-server

De migratieruntimeserver is een gespecialiseerde functie binnen de migratieservice in Azure Database for PostgreSQL, ontworpen om tijdens de migratie als een tussenliggende server te fungeren. Het is een afzonderlijk exemplaar van een flexibele Azure Database for PostgreSQL-server dat niet de doelserver is, maar wordt gebruikt om de migratie van databases vanuit een bronomgeving te vergemakkelijken die alleen toegankelijk is via een particulier netwerk.

Schermopname van het tabblad Runtime-server.

Ga voor meer informatie over de runtimeserver naar de Migratieruntime-server.

Bronserver

Op het tabblad Bronserver wordt u gevraagd om details te geven die betrekking hebben op de bron die is geselecteerd op het tabblad Setup . Dit is de bron van de databases.

  • Servernaam : geef de naam van de host of het IP-adres van de postgreSQL-bronserver op.
  • Poort : poortnummer van de bronserver.
  • Beheerdersaanmelding : de naam van de beheerdergebruiker van de postgreSQL-bronserver.
  • Wachtwoord : wachtwoord van de aanmelding van de beheerder die is opgegeven om verbinding te maken met de PostgreSQL-bronserver.
  • SSL-modus : ondersteunde waarden zijn preferred en required. Wanneer de SSL op de postgreSQL-bronserver is OFF, gebruikt u prefer. Als de SSL op de bronserver is ON, gebruikt u de require. SSL-waarden kunnen worden bepaald in het bestand postgresql.conf van de bronserver.
  • Testverbinding : voert de connectiviteitstest tussen het doel en de bron uit. Zodra de verbinding tot stand is gebracht, kunt u doorgaan naar het volgende tabblad. Deze test is bedoeld om connectiviteitsproblemen te identificeren die mogelijk bestaan tussen de doel- en bronservers, inclusief verificatie met behulp van de opgegeven referenties. Het tot stand brengen van een testverbinding duurt enkele seconden.

Nadat de testverbinding is geslaagd, selecteert u Volgende: Doelserver.

Schermopname van het tabblad Migratie van bronserver.

Doelserver

Op het tabblad Doelserver worden metagegevens weergegeven voor het doel van de flexibele server, zoals de abonnementsnaam, resourcegroep, servernaam, locatie en PostgreSQL-versie.

  • Aanmelding van de beheerder : de naam van de beheerder van de PostgreSQL-doelserver.
  • Wachtwoord - Wachtwoord voor de beheerdersaanmelding die is opgegeven om verbinding te maken met de doel-PostgreSQL-server.
  • Aangepaste FQDN of IP-adres: het aangepaste FQDN- of IP-adresveld is optioneel en kan worden gebruikt wanneer het doel zich achter een aangepaste DNS-server bevindt of aangepaste DNS-naamruimten heeft, waardoor het alleen toegankelijk is via specifieke FQDN's of IP-adressen. Dit kan bijvoorbeeld vermeldingen bevatten zoals production-flexible-server.example.com, 198.1.0.2of een PostgreSQL-FQDN, zoals production-flexible-server.postgres.database.azure.com, als de aangepaste DNS-server de DNS-zone postgres.database.azure.com bevat of query's doorstuurt voor deze zone naar 168.63.129.16, waar de FQDN wordt omgezet in de openbare of privé-DNS-zone van Azure.
  • Testverbinding : voert de connectiviteitstest tussen de bron en het doel uit. Zodra de verbinding tot stand is gebracht, kunt u doorgaan naar het volgende tabblad. Deze test is bedoeld om connectiviteitsproblemen te identificeren die mogelijk bestaan tussen de bron- en doelservers, inclusief verificatie met behulp van de opgegeven referenties. Het tot stand brengen van een testverbinding duurt enkele seconden.

Selecteer na de geslaagde testverbinding de volgende: Databases die u wilt valideren of migreren

Schermopname van het tabblad Migratie van de doelserver.

Databases die moeten worden gevalideerd of gemigreerd

Op het tabblad Databases voor het valideren of migreren kunt u een lijst met gebruikersdatabases kiezen die u wilt migreren vanaf uw PostgreSQL-bronserver.

Nadat u de databases hebt geselecteerd, selecteert u Volgende: Samenvatting.

Schermopname van het tabblad Databases om te valideren of te migreren.

Samenvatting

Het tabblad Samenvatting bevat een overzicht van alle bron- en doeldetails voor het maken van de validatie of migratie. Controleer de details en selecteer Validatie en migratie starten.

Schermopname van het tabblad Overzichtsmigratie.

De validatie of migratie annuleren

U kunt lopende validaties of migraties annuleren. De werkstroom moet in de status In uitvoering zijn om geannuleerd te worden. U kunt een validatie of migratie niet annuleren in de status Geslaagd of Mislukt .

Als u een validatie annuleert, worden verdere validatieactiviteiten gestopt en wordt de validatie verplaatst naar de status Geannuleerd .

Als u een migratie annuleert, wordt verdere migratieactiviteit op uw doelserver gestopt en krijgt het de status Geannuleerd. Wijzigingen op de doelserver worden niet verwijderd of teruggedraaid. Zorg ervoor dat u de databases op uw doelserver neer zet die betrokken zijn bij een geannuleerde migratie.

De migratie bewaken

Nadat u de knop Validatie en migratie starten hebt geselecteerd, wordt er binnen een paar seconden een melding weergegeven om te zeggen dat de validatie of het maken van de migratie is geslaagd. U wordt automatisch omgeleid naar de migratiepagina van de flexibele server. De vermelding toont Status als Wordt uitgevoerd. Het duurt 2 tot 3 minuten om de migratie-infrastructuur in te stellen en netwerkverbindingen te controleren.

Schermopname van de migratiepagina van de monitor.

Het raster met de migraties bevat de volgende kolommen: Naam, Status, Migratiemodus, Migratietype, Bronserver, Bronservertype, Databases, Duur en Begintijd. De items worden gesorteerd op begintijd in aflopende volgorde, met de meest recente vermelding bovenaan. U kunt de knop Vernieuwen op de werkbalk gebruiken om de status van de validatie of migratieuitvoering te vernieuwen.

Migratiedetails

Selecteer de migratienaam in het raster om de bijbehorende details weer te geven.

Houd er rekening mee dat u in de vorige stappen, toen u deze migratie maakte, de migratieoptie hebt geconfigureerd als Valideren en migreren. In dit scenario worden eerst validaties uitgevoerd voordat de migratie wordt gestart. Nadat de substatus vereiste stappen uitvoeren is voltooid, wordt de werkstroom verplaatst naar de substatus van validatie die wordt uitgevoerd.

  • Als de validatie fouten bevat, wordt de migratie verplaatst naar de status Mislukt .

  • Als de validatie zonder fouten is voltooid, wordt de migratie gestart en wordt de werkstroom verplaatst naar de substatus van Gegevens migreren.

Validatiedetails zijn beschikbaar op exemplaar- en databaseniveau.

  • Validatiedetails voor bijvoorbeeld
    • Bevat validatie met betrekking tot de connectiviteitscontrole, de bronversie, dat wil gezegd PostgreSQL-versie >= 9.5 en serverparametercontrole, of de extensies zijn ingeschakeld in de serverparameters van de flexibele Server van Azure Database for PostgreSQL.
  • Validatie- en migratiedetails voor databases
    • Het bevat validatie van de afzonderlijke databases die betrekking hebben op extensies en sorteringsondersteuning in flexibele Azure Database for PostgreSQL-server.

U kunt de validatiestatus en de migratiestatus zien op de pagina met migratiedetails.

Schermopname van de details met validatie en migratie.

Enkele mogelijke migratiestatussen:

Migratiestatus

Toestand Beschrijving
In uitvoering De installatie van de migratie-infrastructuur wordt uitgevoerd of de werkelijke gegevensmigratie wordt uitgevoerd.
Geannuleerd De migratie wordt geannuleerd of verwijderd.
Mislukt De migratie is mislukt.
Validatie is mislukt De validatie is mislukt.
Geslaagd De migratie is geslaagd en is voltooid.
Wachten op actie van gebruiker Wachten op gebruikersactie om de overschakeling uit te voeren.

Migratiedetails

Deelstatus Beschrijving
Vereiste stappen uitvoeren De opzet van de infrastructuur is in uitvoering voor de gegevensmigratie.
Validatie wordt uitgevoerd Validatie wordt uitgevoerd.
Database op de doellocatie verwijderen De reeds bestaande database op de doelserver laten vallen.
Gegevens migreren Gegevensmigratie wordt uitgevoerd.
Migratie voltooien Migratie bevindt zich in de laatste fasen van voltooiing.
Volbracht De migratie is voltooid.
Mislukt Migratie is mislukt.

Validatiesubstatussen

Deelstatus Beschrijving
Mislukt Validatie is mislukt.
Geslaagd Validatie is geslaagd.
Waarschuwing Validatie bevindt zich in een waarschuwingstoestand.

De overgang starten

U kunt de cutover initiëren met behulp van Azure Portal of Azure CLI.

Voor de optie Valideren en migreren moet de gebruiker een extra stap voltooien om de cutover-actie te activeren. Nadat het kopiëren of klonen van de basisgegevens is voltooid, wordt de migratie verplaatst naar de Waiting for user action status en de Waiting for cutover trigger substatus. In deze status kan de gebruiker de cutover activeren vanuit de portal door de migratie te selecteren.

Voordat u cutover start, is het belangrijk om ervoor te zorgen dat:

  • Schrijfbewerkingen naar de bron worden gestopt. latency De waarde is 0 of dicht bij 0. De latency informatie kan worden verkregen via het scherm met migratiedetails, zoals hieronder wordt weergegeven:
  • latency de waarde afneemt tot 0 of dicht bij 0
  • De latency waarde geeft aan wanneer het doel voor het laatst is gesynchroniseerd met de bron. Schrijven naar de bron kan op dit moment worden gestopt en er kan een cutover worden gestart. Als er veel verkeer bij de bron is, is het raadzaam om eerst schrijfbewerkingen te stoppen, zodat latency deze dicht bij 0 kunnen komen en er vervolgens een cutover wordt gestart.

De cutover-bewerking past alle wijzigingen in behandeling van de bronserver toe op de doelserver en voltooit de migratie. Als u een cutover activeert, zelfs met een niet-nulwaarde latency, stopt de replicatie tot op dat moment. Alle gegevens van de bron tot het cutover-punt worden overgebracht naar het doel. Als u een latentie van 15 minuten ondervindt op het cutover-punt, worden alle wijzigingen in de gegevens in de afgelopen 15 minuten toegepast op het doel.

De tijd is afhankelijk van de achterstand van wijzigingen in de afgelopen 15 minuten. Daarom wordt aanbevolen dat de latentie naar nul of bijna nul gaat voordat de cutover wordt geactiveerd.

  • De migratie gaat naar de Succeeded-status wanneer de Migrating data-substatus is voltooid of nadat de cutover als onderdeel van de onlinemigratie succesvol is afgerond. Als er een probleem is met de Migrating data substatus, wordt de migratie verplaatst naar een Failed status.

De migratie controleren wanneer deze is voltooid

Nadat u de databases hebt voltooid, moet u de gegevens tussen de bron en het doel handmatig valideren en controleren of alle objecten in de doeldatabase zijn gemaakt.

Na de migratie kunt u de volgende taken uitvoeren:

  • Controleer de gegevens op uw flexibele server en zorg ervoor dat dit een exacte kopie is van het bronexemplaar.

  • Schakel na verificatie de optie voor hoge beschikbaarheid in op uw flexibele server indien nodig.

  • Wijzig de SKU van de flexibele server zodat deze overeenkomt met de toepassingsbehoeften. Voor deze wijziging moet de databaseserver opnieuw worden opgestart.

  • Als u serverparameters wijzigt van de standaardwaarden in het bronexemplaar, kopieert u die serverparameterwaarden in de flexibele server.

  • Kopieer andere serverinstellingen, zoals tags, waarschuwingen en firewallregels (indien van toepassing), van het bronexemplaar naar de flexibele server.

  • Breng wijzigingen aan in uw toepassing om de verbindingsreeks s te laten verwijzen naar een flexibele server.

  • Bewaak de prestaties van de database nauwkeurig om te zien of er prestatieafstemming nodig is.