Esercitazione: Eseguire la migrazione online di RDS PostgreSQL a Database di Azure per PostgreSQL usando il Servizio Migrazione del database

È possibile usare il Servizio Migrazione del database di Azure per eseguire la migrazione di database da un'istanza di RDS PostgreSQL a Database di Azure per PostgreSQL, mantenendo al tempo stesso online il database di origine durante la migrazione. In altre parole, la migrazione può essere eseguita con tempi di inattività minimi per l'applicazione. In questa esercitazione si esegue la migrazione del database di esempio DVD Rental da un'istanza locale di RDS PostgreSQL 9.6 a Database di Azure per PostgreSQL usando l'attività di migrazione online nel 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 tramite il Servizio Migrazione del database di Azure.
  • Eseguire la migrazione.
  • Monitorare la migrazione.
  • Eseguire la migrazione completa.

Nota

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. Per altre informazioni, vedere la pagina dei prezzi di Servizio Migrazione del database di Azure. 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.

Suggerimento

In Servizio Migrazione del database di Azure è possibile eseguire la migrazione dei database offline o mentre sono online. In una migrazione offline , il tempo di inattività dell'applicazione inizia all'avvio della migrazione. Per limitare il tempo di inattività al tempo necessario per passare al nuovo ambiente dopo la migrazione, usare una migrazione online . È consigliabile testare una migrazione offline per determinare se il tempo di inattività è accettabile. Se il tempo di inattività previsto non è accettabile, eseguire una migrazione online.

Questo articolo descrive come eseguire una migrazione online da un'istanza locale di PostgreSQL a Database di Azure per PostgreSQL.

Prerequisiti

Per completare questa esercitazione, è necessario:

  • Scaricare e installare PostgreSQL community edition 9.5, 9.6 o 10. La versione del server PostgreSQL di origine deve essere 9.5.11, 9.6.7, 10 o successiva. Per altre informazioni, vedere l'articolo Versioni supportate del database PostgreSQL.

    Si noti anche che la versione del database di Azure per PostgreSQL di destinazione deve essere uguale o successiva alla versione di RDS PostgreSQL. Ad esempio, per RDS PostgreSQL 9.6 è possibile eseguire la migrazione a Database di Azure per PostgreSQL 9.6, 10 o 11 ma non a Database di Azure per PostgreSQL 9.5.

  • Creare un'istanza di Database di Azure per PostgreSQL o Database di Azure per PostgreSQL - Hyperscale (Citus). Fare riferimento a questa sezione del documento per informazioni dettagliate su come connettersi al server PostgreSQL usando pgAdmin.

  • 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 sulla rete virtuale e in particolare gli articoli di avvio rapido con istruzioni dettagliate.

  • Assicurarsi che le regole del gruppo di sicurezza di 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, 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, per impostazione predefinita attraverso la porta TCP 5432.

  • Quando si usa un'appliance firewall all'ingresso dei 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 per il server di Database di Azure per PostgreSQL per consentire al 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.

Configurare AWS RDS PostgreSQL per la replica

  1. Per creare un nuovo gruppo di parametri, seguire le istruzioni fornite da AWS nell'articolo Uso di gruppi di parametri database.

  2. Usare il nome utente master per connettersi all'origine dal Servizio Migrazione del database di Azure. Se si usa un account utente diverso dal master, questo deve disporre dei ruoli rds_superuser e rds_replication. Il ruolo rds_replication concede le autorizzazioni per gestire gli slot logici e trasmettere dati tramite questi slot.

  3. Creare un nuovo gruppo di parametri con la configurazione seguente:

    a. Impostare il parametro rds.logical_replication nel gruppo di parametri DB su 1.

    b. max_wal_senders = [numero di attività simultanee]: il parametro max_wal_senders imposta il numero di attività simultanee che è possibile eseguire. È consigliabile impostare 10 attività.

    c. max_replication_slots = [numero di slot]. È consigliabile impostare cinque slot.

  4. Associare il gruppo di parametri creato all'istanza di RDS PostgreSQL.

Migrazione dello schema

  1. Estrarre lo schema dal database di origine e applicarlo al database di destinazione per completare la migrazione di tutti gli oggetti di database, ad esempio schemi di tabella, indici e stored procedure.

    Il modo più semplice per eseguire la migrazione solo dello schema è quello di usare pg_dump con l'opzione -s. Per altre informazioni, vedere gli esempi nell'esercitazione relativa a pg_dump per Postgres.

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

    Ad esempio, per eseguire il dump di un file dello schema per il database dvdrental, usare il comando seguente:

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    
  2. Creare un database vuoto nel servizio di destinazione, ovvero Database di Azure per PostgreSQL. Per connettersi e creare un database, fare riferimento a uno degli articoli seguenti:

  3. Importare lo schema nel servizio di destinazione, ovvero Database di Azure per PostgreSQL. Per ripristinare il file di dump dello schema, eseguire il comando seguente:

    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 dvdrental < dvdrentalSchema.sql
    

Nota

Il servizio di migrazione gestisce internamente l'abilitazione/disabilitazione delle chiavi esterne e i trigger per garantire una migrazione affidabile e affidabile dei dati. 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.

    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.

    Visualizzare i provider di risorse

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

    Registrare il provider di risorse

Creare un'istanza del Servizio Migrazione del database di Azure

  1. Nel portale di Azure selezionare + Crea una risorsa, cercare Servizio Migrazione del database di Azure e quindi selezionare Servizio Migrazione del database di Azure dall'elenco a discesa.

    Azure Marketplace

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

    Creare l'istanza del Servizio Migrazione del database di Azure

  3. Nella schermata Crea servizio Migrazione specificare un nome per il servizio, la sottoscrizione e un gruppo di risorse nuovo o esistente.

  4. Selezionare la località in cui si vuole creare l'istanza del Servizio Migrazione del database di Azure.

  5. Selezionare una rete virtuale esistente o crearne una nuova.

    La rete virtuale consente al Servizio Migrazione del database di Azure di accedere all'istanza di PostgreSQL di origine e all'istanza di Database di Azure per PostgreSQL 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.

  6. Selezionare un piano tariffario. Per questa migrazione online assicurarsi di selezionare il piano tariffario Premium: 4 vCore.

    Configurare le impostazioni dell'istanza del Servizio Migrazione del database di Azure

  7. Selezionare Crea per creare il servizio.

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.

    Individuare tutte le istanze del 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, selezionarla e quindi selezionare + Nuovo progetto di migrazione.

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

  4. Nella sezione Scegli il tipo di attività selezionare Migrazione dei dati online.

    Importante

    Assicurarsi di selezionare Migrazione dei dati online; le migrazioni offline non sono supportate per questo scenario.

    Creare il progetto del Servizio Migrazione del database

    Nota

    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 Salva.

  6. Selezionare Crea ed esegui attività per creare il progetto ed eseguire l'attività di migrazione.

    Nota

    Annotare i prerequisiti necessari per configurare la migrazione online nel pannello di creazione del progetto.

Specificare le informazioni di origine

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

    Dettagli origine

Specificare i dettagli della destinazione

  1. Selezionare Salva e quindi nella schermata Dettagli destinazione specificare i dettagli di connessione per il server di Database di Azure per PostgreSQL di destinazione, di cui è già stato eseguito il provisioning e in cui è stato distribuito lo schema DVD Rentals tramite pg_dump.

    Dettagli destinazione

  2. Selezionare Salva e quindi nella schermata Mappa ai database di destinazione eseguire il mapping del database di origine e di quello 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.

    Eseguire il mapping nei database di destinazione

  3. Selezionare Salva, 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.

    Riepilogo della migrazione

Eseguire la migrazione

  • Selezionare Esegui migrazione.

    Verrà visualizzata la finestra dell'attività di migrazione con il campo Stato dell'attività impostato su Inizializzazione 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 In esecuzione.

    Stato attività: in esecuzione

  2. In NOME DATABASE selezionare un database specifico per ottenere lo stato di migrazione per le operazioni Caricamento completo e Sincronizzazione dei dati incrementale.

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

    Schermata dell'inventario: caricamento dei dati completo

    Schermata dell'inventario: sincronizzazione dei dati incrementale

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.

    Schermata Completa cutover

  3. Quando lo stato della migrazione del database è Completato, connettere le applicazioni alla nuova istanza di Database di Azure per PostgreSQL di destinazione.

La migrazione online di un'istanza locale di RDS PostgreSQL in Database di Azure per PostgreSQL è stata completata.

Passaggi successivi