Share via


Azure Database for PostgreSQL verplaatsen naar een andere regio

Dit artikel bevat richtlijnen voor herlocatie voor Azure Database for PostgreSQL, enkele server en flexibele servers in verschillende regio's waar regioparen niet beschikbaar zijn voor replicatie en geo-herstel.

Er zijn verschillende redenen waarom u uw bestaande Azure-resources mogelijk van de ene regio naar de andere wilt verplaatsen. U kunt het volgende doen:

  • Profiteer van een nieuwe Azure-regio.
  • Implementeer functies of services die alleen beschikbaar zijn in specifieke regio's.
  • Voldoen aan interne beleids- en governancevereisten.
  • In overeenstemming met bedrijfsfusies en overnames
  • Voldoen aan vereisten voor capaciteitsplanning.

Zie Leesreplica's in Azure Cosmos DB for PostgreSQL voor PostgreSQL (voorheen Azure Database for PostgreSQL - Hyperscale (Citus)) voor meer informatie over het verplaatsen van Azure Cosmos DB voor PostgreSQL.

Zie replicatie tussen regio's voor een overzicht van de regioparen die worden ondersteund door systeemeigen replicatie.

Vereisten

Vereisten zijn alleen van toepassing op opnieuw implementeren met gegevens. Als u uw database zonder gegevens wilt verplaatsen, kunt u doorgaan naar Voorbereiden.

  • Als u PostgreSQL wilt verplaatsen met gegevens van de ene regio naar de andere, moet u een extra rekenresource hebben om de hulpprogramma's voor back-up en herstel uit te voeren. In de voorbeelden in deze handleiding wordt een Virtuele Azure-machine met Ubuntu 20.04 LTS gebruikt. De rekenresources moeten:
    • Netwerktoegang hebben tot zowel de bronserver als de doelserver, hetzij in een particulier netwerk of door opname in de firewallregels.
    • Bevinden zich in de bron- of doelregio.
    • Versneld netwerken gebruiken (indien beschikbaar).
    • De database-inhoud wordt niet opgeslagen in een tussenliggende opslag; de uitvoer van het hulpprogramma voor logische back-ups wordt rechtstreeks naar de doelserver verzonden.
  • Afhankelijk van het ontwerp van uw Azure Database for PostgreSQL-exemplaar moeten de volgende afhankelijke resources mogelijk worden geïmplementeerd en geconfigureerd in de doelregio voordat ze worden verplaatst:

Uitvaltijd

Zie Cloud Adoption Framework voor Azure om inzicht te hebben in de mogelijke downtime: Selecteer een herlocatiemethode.

Voorbereiden

Exporteer een Resource Manager-sjabloon om aan de slag te gaan. Deze sjabloon bevat instellingen die uw Automation-naamruimte beschrijven.

  1. Meld u aan bij het Azure-portaal.

  2. Selecteer Alle resources en selecteer vervolgens uw Automation-resource.

  3. Selecteer Sjabloon exporteren.

  4. Kies Downloaden op de pagina Sjabloon exporteren.

  5. Zoek het .zip bestand dat u hebt gedownload uit de portal en pak dat bestand uit naar een map van uw keuze.

    Dit zip-bestand bevat de .json bestanden die de sjabloon en scripts bevatten om de sjabloon te implementeren.

Opnieuw implementeren zonder gegevens

  1. Pas de geëxporteerde sjabloonparameters aan zodat deze overeenkomen met de doelregio.

Belangrijk

De doelserver moet afwijken van de naam van de bronserver. U moet clients opnieuw configureren om naar de nieuwe server te verwijzen.

  1. Implementeer de sjabloon opnieuw in de nieuwe regio. Voor een voorbeeld van het gebruik van een ARM-sjabloon voor het maken van een Azure Database for PostgreSQL raadpleegt u quickstart: Een ARM-sjabloon gebruiken om een Azure Database for PostgreSQL - Flexible Server te maken.

Opnieuw implementeren met gegevens

Opnieuw implementeren met gegevensmigratie voor Azure Database for PostgreSQL is gebaseerd op logische back-up en herstel en vereist systeemeigen hulpprogramma's. Als gevolg hiervan kunt u merkbare downtime verwachten tijdens het herstel.

Tip

U kunt Azure Portal gebruiken om een Azure Database for PostgreSQL - Flexible Server te verplaatsen. Zie Een Azure Database for PostgreSQL - Flexible Server verplaatsen naar een andere regio met behulp van Azure Portal voor meer informatie over het uitvoeren van replicatie voor één server.

  1. Pas de geëxporteerde sjabloonparameters aan zodat deze overeenkomen met de doelregio.

Belangrijk

De naam van de doelserver moet afwijken van de naam van de bronserver. U moet clients opnieuw configureren om naar de nieuwe server te verwijzen.

  1. Implementeer de sjabloon opnieuw in de nieuwe regio. Voor een voorbeeld van het gebruik van een ARM-sjabloon voor het maken van een Azure Database for PostgreSQL raadpleegt u quickstart: Een ARM-sjabloon gebruiken om een Azure Database for PostgreSQL - Flexible Server te maken.

  2. Installeer op de rekenresource die is ingericht voor de migratie de PostgreSQL-clienthulpprogramma's voor de PostgreSQL-versie die moet worden gemigreerd. In het volgende voorbeeld wordt PostgreSQL versie 13 gebruikt op een Azure-VM waarop Ubuntu 20.04 LTS wordt uitgevoerd:

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
      sudo apt-get install -y postgresql-client-13
    

    Raadpleeg Linux-downloads (Ubuntu) voor meer informatie over de installatie van PostgreSQL-onderdelen in Ubuntu.

    Ga voor andere platforms naar PostgreSQL Downloads.

  3. (Optioneel) Als u extra functies op de bronserver hebt gemaakt, maakt u deze op de doelserver. Gebruik de volgende query om een lijst met bestaande rollen op te halen:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Ga als volgt te werk om elke database te migreren:

    1. Stop alle databaseactiviteit op de bronserver.
    2. Vervang de referentiegegevens, de bronserver, de doelserver en de databasenaam in het volgende script:
        export USER=admin_username
        export PGPASSWORD=admin_password
        export SOURCE=pgsql-arpp-source.postgres.database.azure.com
        export TARGET=pgsql-arpp-target.postgres.database.azure.com
        export DATABASE=database_name
        pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
    
    1. Voer het script uit om de database te migreren.

    2. Configureer de clients om naar de doelserver te verwijzen.

    3. Functionele tests uitvoeren op de toepassingen.

      1. Zorg ervoor dat de ignoreMissingVnetServiceEndpoint vlag is ingesteld op False, zodat de IaC de database niet kan implementeren wanneer het service-eindpunt niet is geconfigureerd in de doelregio.