Delen via


Zelfstudie: Online migreren van Amazon RDS for PostgreSQL naar Azure Database for PostgreSQL met de preview-versie van de migratieservice

In dit artikel wordt beschreven hoe u uw PostgreSQL-database online migreert van Amazon RDS for PostgreSQL naar Azure Database for PostgreSQL.

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 Azure Database for PostgreSQL-server te vereenvoudigen.

  • Vereisten
  • De migratie uitvoeren
  • De migratie bewaken
  • Cutover
  • De migratie controleren wanneer deze is voltooid

Vereisten

Voor het voltooien van de migratie hebt u de volgende vereisten nodig:

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.

Test_decoding installeren - Broninstallatie

  • test_decoding wal ontvangt via het logische decoderingsmechanisme en ontsleutelt deze in tekstweergaven van de uitgevoerde bewerkingen.
  • In Amazon RDS voor 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 : flexibele server moet overeenkomen met de bron.
  • Als u een nieuwe Azure Database for PostgreSQL wilt maken, gaat u naar Een Azure Database for PostgreSQL maken

CDC inschakelen als bron

  • test_decoding De invoegtoepassing voor logische decodering legt de gewijzigde records van de bron vast.
  • Voer de volgende opdracht uit om de migratiegebruiker toegang te geven tot replicatiebevoegdheden:
GRANT rds_replication TO <<username>>;
  • Wijzig in de bron, postgreSQL-instantie, de volgende parameters door een nieuwe parametergroep te maken:

    • Set rds.logical_replication = 1
    • Ingesteld max_replication_slots op een waarde die groter is dan één. De waarde moet groter zijn dan het aantal databases dat is geselecteerd voor migratie.
    • Ingesteld max_wal_senders 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 wal_sender_timeout parameter eindigt inactieve replicatieverbindingen langer dan het opgegeven aantal milliseconden. De standaardinstelling voor een AWS RDS for PostgreSQL-exemplaar is 30000 milliseconds (30 seconds). Als u de waarde instelt op 0 (nul), wordt het time-outmechanisme uitgeschakeld en is dit een geldige instelling voor migratie.
  • Zorg er in de doel flexibele server voor dat de onlinemigratie geen opslagruimte meer heeft om de logboeken op te slaan. Zorg er dan voor dat u voldoende tablespaceruimte 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 doelexemplaren van Azure Database for PostgreSQL - Flexible Server ondersteunde extensies in die zijn geïdentificeerd in het PostgreSQL-bronexemplaren.

Zie Extensies in Azure Database for PostgreSQL voor meer informatie.

Notitie

Opnieuw opstarten is vereist wanneer u wijzigingen aanbrengt in de shared_preload_libraries parameter.

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.

Gebruikers en rollen controleren

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 Superuser-rollen: 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.

Hoge beschikbaarheid (betrouwbaarheid) en leesreplica's in het doel uitschakelen

  • 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 garanderen zonder de toegevoegde variabelen die zijn geïntroduceerd door HA en Leesreplica's. 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 de Azure CLI.

Azure Portal biedt een eenvoudige en intuïtieve, wizardgebaseerde ervaring waarmee u door de migratie wordt geleid. Als u de stappen in deze zelfstudie volgt, kunt u uw database naadloos overdragen naar Azure Database for PostgreSQL - Flexible Server en profiteren van de krachtige functies en schaalbaarheid.

Als u wilt migreren met Azure Portal, configureert u eerst de migratietaak, maakt u verbinding met de bron en het doel en voert u vervolgens de migratie uit.

De migratietaak configureren

De migratieservice wordt geleverd met een eenvoudige, wizardgebaseerde ervaring in Azure Portal. Ga als volgt te werk:

  1. Open uw webbrowser en ga naar de portal. Voer uw referenties in om u aan te melden. De standaardweergave is uw service-dashboard.

  2. Ga naar uw Azure Database for PostgreSQL Flexible Server-doel.

  3. Schuif op het tabblad Overzicht van flexibele server in het linkermenu omlaag naar Migratie en selecteer deze.

    Schermopname van de migratieselectie.

  4. Selecteer de knop Maken om te migreren van Amazon RDS for PostgreSQL naar Azure Database for PostgreSQL - Flexible Server. Als dit de eerste keer is dat u de migratieservice gebruikt, wordt er een leeg raster weergegeven met een prompt om uw eerste migratie te starten.

    Schermopname van het maken van een migratie.

    Als u al migraties naar uw Azure Database for PostgreSQL-doel hebt gemaakt, bevat het raster informatie over geprobeerde migraties.

  5. Selecteer de knop Maken. Vervolgens doorloopt u een reeks tabbladen op basis van wizards om een migratie naar dit Azure Database for PostgreSQL-doel te maken vanuit het PostgreSQL-bronexemplaren.

Instellingen

Het eerste tabblad is het tabblad Setup , waar de gebruiker migratiegegevens moet opgeven, zoals het brontype van de migratienaam om de migraties te starten.

Schermopname van de installatiemigratie in Azure Portal.

  • 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 het bijbehorende brontype selecteren, zoals een PostgreSQL-cloudservice, een on-premises installatie of een virtuele machine.

  • Met migratieoptie 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.
    • Migreren : slaat validaties over en start migraties.
    • Valideren en migreren: voert validatie uit voordat een migratie wordt geactiveerd. De migratie wordt alleen geactiveerd als er geen validatiefouten zijn.

Het kiezen van de optie Valideren of Valideren en migreren is altijd een goede gewoonte bij het uitvoeren van premigratievalidaties voordat u de migratie uitvoert. Raadpleeg deze documentatie voor meer informatie over de premigratievalidatie.

  • Met de migratiemodus kunt u de modus voor de migratie kiezen. Offline is de standaardoptie.

Selecteer de knop Volgende: Verbinding maken met de knop Bron .

Runtime-server selecteren

De migratieruntimeserver is een gespecialiseerde functie binnen de migratieservice, ontworpen om te fungeren als een tussenliggende server tijdens de migratie. Het is een afzonderlijk exemplaar van Azure Database for PostgreSQL - Flexible 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.

Ga naar de Migration Runtime-server voor meer informatie over de Runtime-server.

Schermopname van de pagina Migration Runtime Server.

Verbinding maken met bron

Op het tabblad Verbinding maken met bron wordt u gevraagd om details op te geven met betrekking tot de bron die is geselecteerd op het tabblad Setup. Dit is de bron van de databases.

Schermopname van Connectsourcemigration.

  • Servernaam : geef de hostnaam of het IP-adres van het postgreSQL-bronexemplaren op
  • Poort - Poortnummer van de bronserver
  • Aanmeldingsnaam van de serverbeheerder - Gebruikersnaam van de postgreSQL-bronserver
  • Wachtwoord - Wachtwoord van de Bron-PostgreSQL-server
  • SSL-modus: de ondersteunde waarden hebben de voorkeur en zijn vereist. Wanneer de SSL op de BronPostgreSQL-server IS UITGESCHAKELD, gebruikt u SSLMODE=voorkeur. Als de SSL op de bronserver ON is, gebruikt u SSLMODE=require. SSL-waarden kunnen worden bepaald in het bestand Postgresql.conf.
  • Verbinding testen: voert de connectiviteitstest tussen het doel en de bron uit. Zodra de verbinding is geslaagd, kunnen gebruikers doorgaan met de volgende stap. Anders moeten we de netwerkproblemen tussen het doel en de bron identificeren en de gebruikersnaam/het wachtwoord voor de bron verifiëren. Het tot stand brengen van een testverbinding duurt enkele minuten.

Selecteer na de geslaagde testverbinding de volgende: Migratiedoel selecteren

Migratiedoel selecteren

Op het tabblad Migratiedoel worden metagegevens weergegeven voor het flexibele serverdoel, zoals de abonnementsnaam, resourcegroep, servernaam, locatie en PostgreSQL-versie.

Schermopname van het scherm voor het verbinden van de doelmigratie.

  • Gebruikersnaam van beheerder - Gebruikersnaam van beheerder van de PostgreSQL-doelserver
  • Wachtwoord - Wachtwoord van de PostgreSQL-doelserver
  • Aangepaste FQDN/IP (optioneel): het aangepaste FQDN-/IP-veld 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 zijn zoalsflexibleserver.example.com, of een PostgreSQL-FQDN, zoals flexibleserver.postgres.database.azure.com, als de aangepaste DNS-server de DNS-zone postgres.database.azure.com bevat of query's doorstuurt naar 168.63.129.16, waar de FQDN wordt omgezet in de openbare of privé-DNS-zone van 198.1.0.2Azure.
  • Verbinding testen: voert de connectiviteitstest tussen het doel en de bron uit. Zodra de verbinding is geslaagd, kunnen gebruikers doorgaan met de volgende stap. Anders moeten we de netwerkproblemen tussen het doel en de bron identificeren en de gebruikersnaam/het wachtwoord voor het doel verifiëren. Testverbinding duurt enkele minuten om een verbinding tot stand te brengen tussen het doel en de bron.

Selecteer na de geslaagde testverbinding de volgende: Database(s) selecteren voor migratie

Databases selecteren voor migratie

Op dit tabblad bevindt zich een lijst met gebruikersdatabases in de bronserver die is geselecteerd op het tabblad Setup. U kunt maximaal acht databases selecteren en migreren in één migratiepoging. Als er meer dan acht gebruikersdatabases zijn, wordt het migratieproces herhaald tussen de bron- en doelservers voor de volgende set databases.

Schermopname van FetchDBmigration.

Nadat u de databases hebt geselecteerd, selecteert u de volgende: samenvatting

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 de startknop.

Schermopname van samenvattingsmigratie.

De migratie bewaken

Nadat u de startknop hebt geselecteerd, wordt er in een paar seconden een melding weergegeven waarin wordt aangegeven dat de validatie of migratie is gemaakt. U wordt vervolgens automatisch omgeleid naar de migratiepagina van Flexibele server, die een nieuwe vermelding heeft voor de onlangs gemaakte validatie of migratie.

Schermopname van Migratie bewaken.

Het raster waarin de migraties worden weergegeven, heeft deze kolommen: Naam, Status, Migratiemodus, Migratietype, Bronserver, Bronservertype, Databases, Duur en Begintijd. De vermeldingen worden weergegeven in aflopende volgorde van de begintijd, met de meest recente vermelding bovenaan. U kunt de knop Vernieuwen gebruiken om de status van de validatie of migratie te vernieuwen. Selecteer de migratienaam in het raster om de bijbehorende details weer te geven.

Wanneer de validatie of migratie is gemaakt, wordt deze verplaatst naar de status InProgress en het substraat PerformingPreRequisiteSteps . De werkstroom duurt 2-3 minuten om de migratie-infrastructuur en netwerkverbindingen in te stellen.

Migratiedetails

Op het tabblad Setup hebben we de migratieoptie geselecteerd als Migreren en Valideren. In dit scenario worden validaties eerst uitgevoerd voordat de migratie wordt gestart. Nadat de substatus PerformingPreRequisiteSteps 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.

U kunt de resultaten van validatie en migratie bekijken op exemplaar- en databaseniveau.

Schermopname van detailsmigratie.

Enkele mogelijke migratiestatussen:

Migratiestatussen

Toestand Beschrijving
Wordt uitgevoerd 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 voltooid en is voltooid.
WaitingForUserAction Alleen van toepassing op onlinemigratie. Wacht totdat de actie van de gebruiker cutover uitvoert.

Migratiesubstates

Substate Beschrijving
PerformingPreRequisiteSteps De installatie van de infrastructuur wordt uitgevoerd voor gegevensmigratie.
Validatie wordt uitgevoerd Validatie wordt uitgevoerd.
Gegevens migreren Gegevensmigratie wordt uitgevoerd.
Voltooien van Migratie Migratie bevindt zich in de laatste fasen van voltooiing.
Voltooid De migratie is voltooid.
Mislukt Migratie is mislukt.

Validatiesubstates

Substate Beschrijving
Mislukt Validatie is mislukt.
Geslaagd Validatie is geslaagd.
Waarschuwing Validatie is in waarschuwing.

Cutover

Als er zowel Migreren als Valideren en Migreren zijn, is voor het voltooien van de onlinemigratie een andere stap vereist: de gebruiker moet een Cutover-actie uitvoeren. Nadat het kopiëren/klonen van de basisgegevens is voltooid, wordt de migratie verplaatst naar de WaitingForUserAction status en de WaitingForCutoverTrigger 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:

    Schermopname van Cutover-migratie.

  • 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. Op dit moment kan schrijven naar de bron worden gestopt en kan 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 bron toe op het doel en voltooit de migratie. Als u een cutover activeert, zelfs met niet-nul Latency, , stopt de replicatie tot dat tijdstip. Alle gegevens staan op de bron totdat het cutover-punt op het doel wordt toegepast. Stel dat een latentie 15 minuten was op het cutover-punt, zodat alle gewijzigde gegevens in de afgelopen 15 minuten op het doel worden toegepast. 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.

    Schermopname van Confirmcutovermigration.

  • De migratie wordt verplaatst naar de Succeeded status wanneer de Migrating Data substatus of de cutover (in onlinemigratie) is voltooid. Als er een probleem is met de Migrating Data substatus, wordt de migratie verplaatst naar een Failed status.

    Schermopname van geslaagde migratie.

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.