Condividi tramite


Rilocare Database di Azure per PostgreSQL in un'altra area

Questo articolo illustra le linee guida per la rilocazione per Database di Azure per PostgreSQL, server singolo e server flessibili, nelle aree geografiche in cui le coppie di aree non sono disponibili per la replica e il ripristino geografico.

Esistono diversi motivi per cui è possibile spostare le risorse di Azure esistenti da un'area a un'altra. È possibile:

  • Sfruttare i vantaggi di una nuova area di Azure.
  • Distribuire funzionalità o servizi disponibili solo in aree specifiche.
  • Soddisfare i requisiti di governance e criteri interni.
  • Allinearsi alle fusioni e alle acquisizioni aziendali
  • Soddisfare i requisiti di pianificazione della capacità.

Per informazioni su come rilocare Azure Cosmos DB per PostgreSQL (in precedenza denominato Database di Azure per PostgreSQL - Hyperscale (Citus)), vedere Leggere le repliche in Azure Cosmos DB per PostgreSQL.

Per una panoramica delle coppie di aree supportate dalla replica nativa, vedere Replica tra aree.

Prerequisiti

I prerequisiti si applicano solo alla ridistribuzione con i dati. Per spostare il database senza dati, è possibile passare a Prepara.

  • Per spostare PostgreSQL con i dati da un'area a un'altra, è necessario disporre di una risorsa di calcolo aggiuntiva per eseguire gli strumenti di backup e ripristino. Gli esempi in questa guida usano una macchina virtuale di Azure che esegue Ubuntu 20.04 LTS. Le risorse di calcolo devono:
    • Avere accesso alla rete sia all'origine che al server di destinazione, in una rete privata o includendo le regole del firewall.
    • Trovarsi nell'area di origine o di destinazione.
    • Usare rete accelerata (se disponibile).
    • Il contenuto del database non viene salvato in alcuna risorsa di archiviazione intermedia; l'output dello strumento di backup logico viene inviato direttamente al server di destinazione.
  • A seconda della progettazione dell'istanza di Database di Azure per PostgreSQL, potrebbe essere necessario distribuire e configurare le risorse dipendenti seguenti nell'area di destinazione prima della rilocazione:

Tempo di inattività

Per comprendere i possibili tempi di inattività, vedere Cloud Adoption Framework per Azure: selezionare un metodo di rilocazione.

Preparazione

Per iniziare, esportare un modello di Resource Manager. Questo modello contiene impostazioni che descrivono lo spazio dei nomi di Automazione.

  1. Accedere al portale di Azure.

  2. Selezionare Tutte le risorse e quindi selezionare la risorsa di Automazione.

  3. Selezionare Esporta modello.

  4. Scegliere Scarica nella pagina Esporta modello.

  5. Individuare il file .zip scaricato dal portale e decomprimerlo in una cartella di propria scelta.

    Questo file ZIP contiene i file .json che includono il modello e gli script per distribuire il modello.

Ridistribuire senza dati

  1. Modificare i parametri del modello esportati in modo che corrispondano all'area di destinazione.

Importante

Il server di destinazione deve essere diverso dal nome del server di origine. È necessario riconfigurare i client in modo che puntino al nuovo server.

  1. Ridistribuire il modello nella nuova area. Per un esempio di come usare un modello di Resource Manager per creare un database di Azure per PostgreSQL, vedere Avvio rapido: Usare un modello di Resource Manager per creare un server flessibile di Database di Azure per PostgreSQL.

Ridistribuire con i dati

La ridistribuzione con la migrazione dei dati per Database di Azure per PostgreSQL si basa su backup logico e ripristino e richiede strumenti nativi. Di conseguenza, è possibile prevedere tempi di inattività notevoli durante il ripristino.

Suggerimento

È possibile usare il portale di Azure per rilocare un server flessibile di Database di Azure per PostgreSQL. Per informazioni su come eseguire la replica per server singolo, vedere Spostare un server flessibile di Database di Azure per PostgreSQL in un'altra area usando il portale di Azure.

  1. Modificare i parametri del modello esportati in modo che corrispondano all'area di destinazione.

Importante

Il nome del server di destinazione deve essere diverso dal nome del server di origine. È necessario riconfigurare i client in modo che puntino al nuovo server.

  1. Ridistribuire il modello nella nuova area. Per un esempio di come usare un modello di Resource Manager per creare un database di Azure per PostgreSQL, vedere Avvio rapido: Usare un modello di Resource Manager per creare un server flessibile di Database di Azure per PostgreSQL.

  2. Nella risorsa di calcolo di cui è stato effettuato il provisioning per la migrazione, installare gli strumenti client PostgreSQL per la versione di PostgreSQL di cui si esegue la migrazione. L'esempio seguente usa PostgreSQL versione 13 in una macchina virtuale di Azure che esegue Ubuntu 20.04 LTS:

      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
    

    Per altre informazioni sull'installazione dei componenti PostgreSQL in Ubuntu, vedere Download di Linux (Ubuntu).

    Per altre piattaforme, passare a Download di PostgreSQL.

  3. (Facoltativo) Se sono stati creati ruoli aggiuntivi nel server di origine, crearli nel server di destinazione. Per ottenere un elenco di ruoli esistenti, usare la query seguente:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Per eseguire la migrazione di ogni database, seguire questa procedura:

    1. Arrestare tutte le attività del database nel server di origine.
    2. Sostituire le informazioni sulle credenziali, il server di origine, il server di destinazione e il nome del database nello script seguente:
        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. Per eseguire la migrazione del database, eseguire lo script.

    2. Configurare i client in modo che puntino al server di destinazione.

    3. Eseguire test funzionali sulle applicazioni.

      1. Assicurarsi che il flag ignoreMissingVnetServiceEndpoint sia impostato su False, in modo che l'IaC non distribuisca il database quando l'endpoint del servizio non è configurato nell'area di destinazione.