Condividi tramite


Esercitazione: Eseguire la migrazione online di PostgreSQL al Database di Azure per PostgreSQL con il Servizio Migrazione del database (versione classica) tramite il portale di Azure

Importante

Consigliamo di usare il nuovo servizio di migrazione in Database di Azure per PostgreSQL per un’esperienza di migrazione più semplificata ed efficiente. Questo servizio semplifica il processo supportando diversi ambienti di origine, garantendo una transizione senza problemi a Database di Azure per PostgreSQL.

Per altre informazioni su Servizio Migrazione del database di Azure, vedere l'articolo Definizione del Servizio Migrazione del database di Azure

È possibile usare il Servizio Migrazione del database di Azure per eseguire la migrazione dei database da un'istanza di PostgreSQL locale a Database di Azure per PostgreSQL con tempi di inattività minimi per l'applicazione. In questa esercitazione si esegue la migrazione del database di esempio listdb da un'istanza locale di PostgreSQL 13.10 a Database di Azure per PostgreSQL usando l'attività di migrazione online in Servizio Migrazione del database di Azure.

In questa esercitazione verranno illustrate le procedure per:

  • Eseguire la migrazione dello schema di esempio con l'utilità pg_dump.
  • Creare un'istanza del Servizio Migrazione del database di Azure.
  • Creare un progetto di migrazione nel Servizio Migrazione del database di Azure.
  • Eseguire la migrazione.
  • Monitorare la migrazione.
  • Eseguire la migrazione completa.

L'uso del Servizio Migrazione del database di Azure per eseguire una migrazione online richiede la creazione di un'istanza basata sul piano tariffario Premium. Il disco viene crittografato per impedire il furto dei dati durante il processo di migrazione

Importante

Per un'esperienza di migrazione ottimale, Microsoft consiglia di creare un'istanza del Servizio Migrazione del database di Azure nella stessa area di Azure del database di destinazione. Lo spostamento dei dati tra regioni o aree geografiche può rallentare il processo di migrazione e causare errori.

Prerequisiti

Per completare questa esercitazione, è necessario:

  • Scaricare e installare PostgreSQL community edition. La versione del server PostgreSQL di origine deve essere >= 9.4. Per altre informazioni, vedere Versioni supportate di PostgreSQL in Database di Azure per PostgreSQL.

    Si noti anche che la versione del Database di Azure per PostgreSQL di destinazione deve essere uguale o successiva alla versione locale di PostgreSQL. Ad esempio, per PostgreSQL 12 è possibile eseguire la migrazione al Database di Azure per PostgreSQL >= 12, ma non al Database di Azure per PostgreSQL 11.

  • Creare un database di Azure per il server PostgreSQL.

  • Creare una rete virtuale di Microsoft Azure per il servizio Migrazione del database di Azure usando il modello di distribuzione Azure Resource Manager, che offre la connettività da sito a sito per i server di origine locali con ExpressRoute o VPN. Per altre informazioni sulla creazione di una rete virtuale, vedere la documentazione della rete virtuale e in particolare gli articoli di avvio rapido con istruzioni dettagliate.

    Durante la configurazione della rete virtuale, se si usa ExpressRoute con il peering di rete per Microsoft, aggiungere gli endpoint servizio seguenti alla subnet in cui verrà effettuato il provisioning del servizio:

    • Endpoint del database di destinazione (ad esempio endpoint SQL, endpoint di Azure Cosmos DB e così via)
    • Endpoint di archiviazione
    • Endpoint bus di servizio

    Questa configurazione è necessaria perché il Servizio Migrazione del database di Azure non ha connettività Internet.

  • Assicurarsi che le regole del gruppo di sicurezza di rete (NSG) per la rete virtuale non blocchino la porta in uscita 443 di ServiceTag per ServiceBus, Archiviazione e AzureMonitor. Per informazioni dettagliate sul filtro del traffico dei gruppi di sicurezza di rete della rete virtuale di Azure, vedere l'articolo Filtrare il traffico di rete con gruppi di sicurezza di rete.

  • Configurare Windows Firewall per l'accesso al motore di database.

  • Aprire Windows Firewall per consentire al Servizio Migrazione del database di Azure di accedere al server PostgreSQL di origine, che per impostazione predefinita è la porta TCP 5432.

  • Quando si usa un'appliance firewall davanti ai database di origine, potrebbe essere necessario aggiungere regole del firewall per consentire al Servizio Migrazione del database di Azure di accedere ai database di origine per la migrazione.

  • Creare una regola del firewall a livello di server per Database di Azure per PostgreSQL per consentire a Servizio Migrazione del database di Azure di accedere ai database di destinazione. Specificare l'intervallo di subnet della rete virtuale usato per il servizio Migrazione del database di Azure.

  • Abilitare la replica logica nel postgresql.config file e impostare i parametri seguenti:

    • wal_level = logical.
    • max_replication_slots = [numero di slot], si consiglia di impostare 5 slot.
    • max_wal_senders = [numero di attività simultanee]. Il max_wal_senders parametro imposta il numero di attività simultanee che è possibile eseguire, consiglia di impostare le 10 attività.
  • L'utente deve avere il REPLICATION ruolo nel server che ospita il database di origine.

Importante

Per tutte le tabelle nel database esistente è necessaria una chiave primaria per garantire che le modifiche possano essere sincronizzate con il database di destinazione.

Eseguire la migrazione dello schema di esempio

Per completare tutti gli oggetti di database come schemi di tabella, indici e stored procedure, è necessario estrarre lo schema dal database di origine e applicarlo al database.

  1. Usare pg_dump -s il comando per creare un file di dump dello schema per un database.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Ad esempio, per creare un file di dump dello schema per il database listdb:

    pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.sql
    

    Per altre informazioni sull'uso dell'utilità pg_dump, vedere gli esempi riportati nell'esercitazione su pg dump.

  2. Creare un database vuoto nell'ambiente di destinazione, ovvero il Database di Azure per PostgreSQL.

    Per informazioni dettagliate su come connettersi e creare un database, vedere l'articolo Creare un server Database di Azure per PostgreSQL nel portale di Azure.

  3. Importare lo schema nel database di destinazione che è stato creato mediante il ripristino del file di dump dello schema.

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Ad esempio:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d migratedb < listdbSchema.sql
    

    Note

    Il servizio di migrazione gestisce internamente l'abilitazione e la disabilitazione di chiavi esterne e trigger, per garantire una migrazione dei dati affidabile e affidabile. Di conseguenza, non è necessario preoccuparsi di apportare modifiche allo schema del database di destinazione.

Registrare il provider di risorse

Prima di creare la prima istanza del servizio Migrazione del database, registrare il provider di risorse Microsoft.DataMigration.

  1. Accedere al portale di Azure. Cercare e selezionare Sottoscrizioni.

    Screenshot che mostra le sottoscrizioni del portale.

  2. Selezionare la sottoscrizione in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure e quindi selezionare Provider di risorse.

    Screenshot che mostra i provider di risorse.

  3. Cercare migration e quindi selezionare Registra per Microsoft.DataMigration.

    Screenshot della schermata Registra il provider di risorse.

Creare un'istanza del Servizio Migrazione del database di Azure

  1. Nel menu del portale di Azure o dalla pagina Home selezionare Crea una risorsa. Cercare e selezionare Servizio Migrazione del database di Azure.

    Screenshot di Azure Marketplace.

  2. Nella schermata Servizio Migrazione del database di Azure selezionare Crea.

    Screenshot che mostra la creazione di un'istanza del Servizio di migrazione del database Azure.

    Selezionare il tipo di server di origine e il tipo di server di destinazione appropriati e scegliere l'opzione Servizio Migrazione del database (versione classica).

    Screenshot di Seleziona lo scenario di Servizio Migrazione del database (scenario classico).

  3. Nella schermata Informazioni di base di Crea servizio Migrazione:

    • Selezionare la sottoscrizione.
    • Creare un nuovo gruppo di risorse o sceglierne uno esistente.
    • Specificare un nome per l'istanza del Servizio Migrazione del database di Azure.
    • Selezionare la località in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure.
    • Scegliere Azure come modalità del servizio.
    • Selezione di un piano tariffario. Per altre informazioni sui costi e i piani tariffari, vedere la pagina relativa ai prezzi.

    Screenshot che mostra la configurazione delle impostazioni di base dell'istanza del Servizio di migrazione del database Azure.

    • Selezionare Passaggio successivo: Rete.
  4. Nella schermata Rete di Crea servizio Migrazione:

    • Selezionare una rete virtuale esistente o crearne una nuova. La rete virtuale consente a Servizio Migrazione del database di Azure di accedere al server di origine e all'istanza di destinazione. Per altre informazioni su come creare una rete virtuale nel portale di Azure, vedere l'articolo Creare una rete virtuale con il portale di Azure.

    Screenshot che mostra la configurazione delle impostazioni di rete dell'istanza del Servizio Migrazione del database di Azure.

    • Selezionare Rivedi e crea per esaminare i dettagli e quindi selezionare Crea per creare il servizio.

    • Dopo qualche istante, l'istanza del servizio Migrazione del database di Azure viene creata ed è pronta per l'uso:

    Screenshot del servizio di migrazione creato.

Creare un progetto di migrazione

Dopo aver creato il servizio, individuarlo nel portale di Azure, aprirlo e creare un nuovo progetto di migrazione.

  1. Nel portale di Azure selezionare Tutti i servizi, eseguire la ricerca di Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure.

    Screenshot di un comando Ricerca Servizio Migrazione del database di Azure.

  2. Nella schermata Servizi Migrazione del database di Azure cercare il nome dell'istanza di Servizio Migrazione del database di Azure appena creata, selezionare l'istanza e quindi selezionare + Nuovo progetto di migrazione.

    Screenshot di una ricerca nell'istanza del Servizio Migrazione del database di Azure.

  3. Nella schermata Nuovo progetto di migrazione specificare il nome del progetto, nella casella di testo Tipo del server di origine selezionare PostgreSQL e nella casella di testo Tipo del server di destinazione selezionare Database di Azure per PostgreSQL.

  4. Nella sezione Tipo di attività di migrazione, selezionare Migrazione dei dati online.

    Screenshot di un comando Crea nuovo progetto di migrazione.

    In alternativa, è possibile scegliere Crea solo il progetto per creare subito il progetto di migrazione ed eseguire la migrazione in un secondo momento.

  5. Selezionare Crea ed esegui attività, per usare correttamente Servizio Migrazione del database di Azure per eseguire la migrazione dei dati.

Specificare le informazioni di origine

  1. Nella schermata Aggiungi dettagli origine specificare i dettagli di connessione per l'istanza PostgreSQL di origine.

    Screenshot di una schermata Aggiungi dettagli origine.

Specificare i dettagli della destinazione

  1. Nella schermata Dettagli destinazione specificare i dettagli di connessione per la destinazione Azure Database for PostgreSQL - Server flessibile, ossia l'istanza pre-provisionata in cui è stato distribuito lo schema usando pg_dump.

    Screenshot di una schermata Aggiungi dettagli destinazione.

  2. Selezionare Avanti: Seleziona i database e quindi, nella schermata Seleziona database, eseguire il mapping dell'origine e del database di destinazione per la migrazione.

    Se il database di destinazione contiene lo stesso nome del database di origine, il Servizio Migrazione del database di Azure seleziona il database di destinazione per impostazione predefinita.

    Screenshot di un database della mappa con la schermata di destinazione.

  3. Selezionare Avanti: Seleziona tabelle e quindi, nella schermata Seleziona tabelle, selezionare le tabelle necessarie di cui eseguire la migrazione.

    Screenshot di una selezione delle tabelle per la schermata di migrazione.

  4. Selezionare Avanti: Configura le impostazioni di migrazione, e quindi, nella schermata Configura impostazioni di migrazione, accettare i valori predefiniti.

    Screenshot della schermata di configurazione dell'impostazione della migrazione.

  5. Nella schermata Riepilogo della migrazione, nella casella di testo Nome attività, specificare un nome per l'attività di migrazione, quindi rivedere il riepilogo per verificare che i dettagli dell'origine e della destinazione corrispondano a quanto specificato in precedenza.

    Screenshot della schermata di riepilogo della migrazione.

Eseguire la migrazione

Selezionare Avvia migrazione.

Verrà visualizzata la finestra dell'attività di migrazione con lo Stato dell'attività che passerà a Backup in corso.

Monitorare la migrazione

  1. Nella schermata dell'attività di migrazione selezionare Aggiorna per aggiornare la visualizzazione finché nel campo Stato della migrazione non viene indicato Completata.

    Screenshot della schermata di monitoraggio della migrazione.

  2. Al termine della migrazione, in Nome database selezionare un database specifico per ottenere lo stato di migrazione per le operazioni Caricamento completo dei dati e Sincronizzazione dei dati incrementale.

    Note

    Caricamento completo indica lo stato di migrazione del carico iniziale, mentre Sincronizzazione dei dati incrementale indica lo stato di Change Data Capture (CDC).

    Screenshot della schermata dei dettagli del caricamento completo della migrazione.

    Screenshot della schermata dei dettagli del caricamento incrementale della migrazione.

Eseguire il cutover della migrazione

Al termine del caricamento completo iniziale, i database vengono contrassegnati con Pronto per il cutover.

  1. Quando si è pronti per completare la migrazione del database, selezionare Avvia cutover.

  2. Attendere che il contatore Modifiche in sospeso mostri 0 per assicurarsi che tutte le transazioni in ingresso nel database di origine siano terminate, selezionare la casella di controllo Conferma e quindi selezionare Applica.

    Screenshot della schermata di completamento del cutover.

  3. Quando lo stato della migrazione del database è Completato, ricreare le sequenze (se applicabile) e connettere le applicazioni alla nuova istanza di destinazione di Database di Azure per PostgreSQL.