Share via


Eseguire la migrazione del database PostgreSQL al server PostgreSQL abilitato per Azure Arc

Questo documento descrive i passaggi per ottenere il database PostgreSQL esistente (uno che non è ospitato in Servizi dati abilitati per Azure Arc) nel server PostgreSQL abilitato per Azure Arc.

Nota

In quanto funzionalità di anteprima, la tecnologia presentata in questo articolo è soggetta alle condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure.

Gli aggiornamenti più recenti sono disponibili nelle note sulla versione.

Considerazioni

Il server PostgreSQL abilitato per Azure Arc è la versione community di PostgreSQL. Qualsiasi strumento che funziona in PostgreSQL all'esterno di Azure Arc deve quindi funzionare con il server PostgreSQL abilitato per Azure Arc.

Di conseguenza, con il set di strumenti attualmente usati per Postgres, si dovrebbe essere in grado di:

  1. Eseguire il backup del database Postgres dall'istanza ospitata all'esterno di Azure Arc
  2. Ripristinarlo nel server PostgreSQL abilitato per Azure Arc

Quello che verrà lasciato per voi è:

  • reimpostare i parametri del server
  • reimpostare i contesti di sicurezza: ricreare utenti, ruoli e reimpostare le autorizzazioni...

Per eseguire questa operazione di backup/ripristino, è possibile usare qualsiasi strumento in grado di eseguire backup/ripristino per Postgres. Ad esempio:

  • Azure Data Studio e l'estensione Postgres
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

Esempio

Di seguito vengono illustrati questi passaggi usando lo pgAdmin strumento . Prendere in considerazione la configurazione seguente:

  • Origine:
    Un server Postgres in esecuzione in locale in un server bare metal e denominato JEANYDSRV. È della versione 14 e ospita un database denominato MyOnPremPostgresDB con una tabella T1 con 1 riga Migrate-source

  • Destinazione:
    Un server Postgres in esecuzione in un ambiente Azure Arc e denominato postgres01. È della versione 14. Non dispone di alcun database, ad eccezione del database Postgres standard.
    Migrate-destination

Eseguire un backup del database di origine in locale

Migrate-source-backup

Configurarlo:

  1. Assegnare un nome file: MySourceBackup
  2. Impostare il formato su PersonalizzatoMigrate-source-backup-configure

Il backup viene completato correttamente:
Migrate-source-backup-completed

Creare un database vuoto nel sistema di destinazione nel server PostgreSQL abilitato per Azure Arc

Nota

Per registrare un'istanza pgAdmin di Postgres nello strumento, è necessario usare l'indirizzo IP pubblico dell'istanza nel cluster Kubernetes e impostare il contesto di porta e sicurezza in modo appropriato. Questi dettagli sono disponibili nella riga dell'endpoint dopo l'esecuzione psql del comando seguente:

az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s

Che restituisce un output simile al seguente:

{
  "instances": [
    {
      "endpoints": [
    "Description": "PostgreSQL Instance",
    "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
  },
  {
    "Description": "Log Search Dashboard",
    "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
  },
  {
    "Description": "Metrics Dashboard",
    "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
  }
],
"engine": "PostgreSql",
"name": "postgres01"
}
  ],
  "namespace": "arc"
}

Assegnare un nome al database di destinazione RESTORED_MyOnPremPostgresDB.

Migrate-destination-db-create

Ripristinare il database nell'installazione di Arc

Migratre-db-restore

Configurare il ripristino:

  1. Puntare al file che contiene il backup da ripristinare: MySourceBackup

  2. Mantenere il formato impostato su Personalizzato o tarMigrate-db-restore-configure

  3. Fare clic su Ripristina.

    Il ripristino ha esito positivo.
    Migrate-db-restore-completed

Verificare che il database sia stato ripristinato correttamente nel server PostgreSQL abilitato per Azure Arc

Utilizzare uno dei metodi seguenti:

Da pgAdmin:

Espandere l'istanza di Postgres ospitata nella configurazione di Azure Arc. Verrà visualizzata la tabella nel database ripristinato e quando si selezionano i dati visualizza la stessa riga di quella presente nell'istanza locale:

Migrate-db-restore-verification

Dall'interno psql della configurazione di Azure Arc:

All'interno dell'installazione di Arc è possibile usare psql per connettersi all'istanza di Postgres, impostare il contesto del database su RESTORED_MyOnPremPostgresDB ed eseguire query sui dati:

  1. Elencare i punti finali per creare il psql stringa di connessione:

    az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
    
    {
      "instances": [
        {
          "endpoints": [
        "Description": "PostgreSQL Instance",
        "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
      },
      {
        "Description": "Log Search Dashboard",
        "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
      },
      {
        "Description": "Metrics Dashboard",
        "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
      }
    ],
    "engine": "PostgreSql",
    "name": "postgres01"
    }
      ],
      "namespace": "arc"
    }
    
  2. psql Dal stringa di connessione usare il -d parametro per indicare il nome del database. Con il comando seguente, verrà richiesta la password:

    psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
    

    psql Collega.

    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1), server 12.3 (Debian 12.3-1.pgdg100+1))
    WARNING: psql major version 10, server major version 12.
          Some psql features might not work.
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    RESTORED_MyOnPremPostgresDB=#   
    
  3. Selezionare la tabella e verranno visualizzati i dati ripristinati dall'istanza di Postgres locale:

    RESTORED_MyOnPremPostgresDB=# select * from t1;
    
     col1 |    col2
    ------+-------------
        1 | BobbyIsADog
    (1 row)
    

Nota

  • Non è attualmente possibile eseguire l'onboarding in Azure Arc di un'istanza di Postgres esistente in esecuzione in locale o in qualsiasi altro cloud. In altre parole, non è possibile installare una sorta di "agente Azure Arc" nell'istanza di Postgres esistente per renderla abilitata per l'installazione di Postgres da Azure Arc. È invece necessario creare una nuova istanza di Postgres e trasferirvi i dati. È possibile usare la tecnica illustrata in precedenza per eseguire questa operazione oppure usare qualsiasi strumento ETL di propria scelta.

*In questi documenti ignorare le sezioni Accedi al portale di Azure e Crea un Database di Azure per PostgreSQL. Implementare i passaggi rimanenti nella distribuzione di Azure Arc. Queste sezioni sono specifiche del server Database di Azure per PostgreSQL offerto come servizio PaaS nel cloud di Azure, ma le altre parti dei documenti sono direttamente applicabili al server PostgreSQL abilitato per Azure Arc.