Condividi tramite


Esercitazione: Eseguire la migrazione online da Amazon RDS per PostgreSQL a Database di Azure per PostgreSQL con la versione di anteprima del servizio di migrazione

Questo articolo illustra come eseguire la migrazione online del database PostgreSQL da AWS RDS a Database di Azure per PostgreSQL.

Il servizio di migrazione in Database di Azure per PostgreSQL è un servizio completamente gestito, integrato nel portale di Azure e nell'interfaccia della riga di comando di Azure. È progettato per semplificare il percorso di migrazione al server di Database di Azure per PostgreSQL.

  • Prerequisiti
  • Eseguire la migrazione
  • Monitorare la migrazione
  • Cutover
  • Controllare la migrazione al termine dell'operazione

Prerequisiti

Per completare la migrazione sono necessari i prerequisiti seguenti:

Prima di avviare la migrazione con il servizio migrazione di Database di Azure per PostgreSQL, è importante soddisfare i prerequisiti seguenti, specifici per gli scenari di migrazione online.

Verificare la versione di origine

La versione del server PostgreSQL di origine deve essere 9.5 o successiva.

Se la versione di origine di PostgreSQL è precedente alla versione 9.5, aggiornarla alla versione 9.5 o successiva prima di avviare la migrazione.

Installare test_decoding - Setup dell'origine

  • test_decoding riceve il log write-ahead (WAL) tramite il meccanismo di decodifica logica e lo decodifica in rappresentazioni testuali delle operazioni eseguite.
  • In Amazon RDS per PostgreSQL il plug-in test_decoding è preinstallato e pronto per la replica logica. Questo consente di configurare facilmente slot di replica logica e trasmettere modifiche del log write-ahead, semplificando i casi d'uso quali CDC (Change Data Capture) o la replica in sistemi esterni.
  • Per altre informazioni sul plug-in test-decoding, vedere la documentazione di PostgreSQL

Configurare il setup della destinazione

  • Prima della migrazione, è necessario creare un'istanza di Database di Azure per PostgreSQL - Server flessibile.
  • Lo SKU di cui è stato effettuato il provisioning per Database di Azure per PostgreSQL - Server flessibile deve corrispondere a quello di origine.
  • Per creare un nuovo Database di Azure per PostgreSQL, vedere Creare un database di Azure per PostgreSQL

Abilitare Change Data Capture come origine

  • Il plug-in di decodifica logica test_decoding acquisisce i record modificati dall'origine.
  • Per consentire all'utente di migrazione di accedere ai privilegi di replica, eseguire il comando seguente:
GRANT rds_replication TO <<username>>;
  • Nell'istanza di PostgreSQL di origine modificare i parametri seguenti creando un nuovo gruppo di parametri:

    • Impostare rds.logical_replication = 1
    • Impostare max_replication_slots su un valore maggiore di uno. Il valore deve essere maggiore del numero di database selezionati per la migrazione.
    • Impostare max_wal_senders su un valore maggiore di uno. Deve essere almeno uguale a max_replication_slots, più il numero di mittenti già usati nell'istanza.
    • Il parametro wal_sender_timeout termina le connessioni di replica inattive più lunghe del numero specificato di millisecondi. Il valore predefinito per un'istanza di AWS RDS per PostgreSQL è 30000 milliseconds (30 seconds). L'impostazione del valore su 0 (zero) disabilita il meccanismo di timeout ed è un'impostazione valida per la migrazione.
  • Nell’obiettivo Server flessibile, per evitare che la migrazione online non disponga di spazio sufficiente per memorizzare i log, verificare di disporre di uno spazio tabella sufficiente usando un disco gestito con provisioning. Per raggiungere questo obiettivo, disabilitare il parametro server azure.enable_temp_tablespaces_on_local_ssd per la durata della migrazione e ripristinarlo allo stato originale dopo la migrazione.

Configurare il setup di rete

Il setup di rete è fondamentale per il corretto funzionamento del servizio di migrazione. Assicurarsi che il server PostgreSQL di origine possa comunicare con il server di Database di Azure per PostgreSQL di destinazione. Le configurazioni di rete seguenti sono essenziali per una corretta migrazione.

Per informazioni sul setup di rete, vedere Guida alla rete per il servizio di migrazione.

Abilitare le estensioni

Per garantire una corretta migrazione con il servizio migrazione in Database di Azure per PostgreSQL, potrebbe essere necessario verificare le estensioni per l'istanza di PostgreSQL di origine. Le estensioni offrono caratteristiche e funzionalità aggiuntive che potrebbero essere necessarie per l'applicazione. Assicurarsi di verificare le estensioni nell'istanza di PostgreSQL di origine prima di avviare il processo di migrazione.

Abilitare le estensioni supportate identificate nell'istanza di PostgreSQL di origine in Database di Azure per PostgreSQL - Server flessibile di destinazione.

Per altre informazioni sulle estensioni, vedere Estensioni in Database di Azure per PostgreSQL.

Nota

Quando vengono apportate modifiche al parametro shared_preload_libraries, è necessario un riavvio.

Controllare i parametri del server

Questi parametri non vengono migrati automaticamente nell'ambiente di destinazione e devono essere configurati manualmente.

  • Associare i valori dei parametri del server del database PostgreSQL di origine a Database di Azure per PostgreSQL accedendo alla sezione "Parametri del server" nel portale di Azure e aggiornando manualmente i valori di conseguenza.

  • Salvare le modifiche del parametro e riavviare Database di Azure per PostgreSQL per applicare la nuova configurazione, se necessario.

Controllare gli utenti e i ruoli

Quando si esegue la migrazione a Database di Azure per PostgreSQL, è essenziale affrontare separatamente la migrazione degli utenti e dei ruoli, perché richiedono un intervento manuale:

  • Migrazione manuale di utenti e ruoli: deve essere eseguita la migrazione manuale degli utenti e dei ruoli associati al Database di Azure per PostgreSQL. Per facilitare questo processo, è possibile usare l'utilità pg_dumpall con il flag --globals-only per esportare gli oggetti globali quali ruoli e account utente. Eseguire il comando seguente, sostituendo <<username>> con il nome utente effettivo e <<filename>> con il nome del file di output desiderato:

    pg_dumpall --globals-only -U <<username>> -f <<filename>>.sql
    
  • Restrizione per i ruoli utente con privilegi avanzati: Database di Azure per PostgreSQL non supporta i ruoli utente con privilegi avanzati. Pertanto, occorre rimuovere i privilegi avanzati prima della migrazione. Assicurarsi di modificare le autorizzazioni e i ruoli di conseguenza.

Questa procedura consente di assicurarsi che venga eseguita la migrazione degli account utente e dei ruoli in modo appropriato a Database di Azure per PostgreSQL senza riscontrare problemi relativi alle restrizioni per gli utenti con privilegi avanzati.

Disabilitare la disponibilità elevata (affidabilità) e le repliche in lettura nella destinazione

  • La disabilitazione della disponibilità elevata (affidabilità) e della lettura delle repliche nell'ambiente di destinazione è essenziale. Queste funzionalità devono essere abilitate solo dopo il completamento della migrazione.

  • Seguendo queste linee guida, è possibile garantire un processo di migrazione senza problemi senza le variabili aggiunte introdotte dalla disponibilità elevata e dalle repliche in lettura. Una volta completata la migrazione e quando il database è stabile, è possibile abilitare queste funzionalità per migliorare la disponibilità e la scalabilità dell'ambiente del database in Azure.

Eseguire la migrazione

È possibile eseguire la migrazione usando il portale di Azure o l'interfaccia della riga di comando di Azure.

Il portale di Azure offre un'esperienza di migrazione semplice e intuitiva, basata su procedure guidate. Seguendo i passaggi descritti in questa esercitazione, è possibile trasferire facilmente il database nel server flessibile di Database di Azure per PostgreSQL e sfruttarne le potenti funzionalità e la scalabilità.

Per eseguire la migrazione con il portale di Azure, configurare per prima cosa l'attività di migrazione, connettersi all'origine e alla destinazione e quindi eseguire la migrazione.

Configurare l'attività di migrazione

Il servizio di migrazione include un'esperienza semplice di procedura guidata nel portale di Azure. Ecco come iniziare:

  1. Aprire il Web browser e passare al portale. Immettere le credenziali di accesso. La visualizzazione predefinita è il dashboard del servizio.

  2. Passare alla destinazione del server flessibile di Database di Azure per PostgreSQL.

  3. Nella scheda Panoramica del server flessibile, nel menu a sinistra scorrere verso il basso fino a Migrazione e selezionare questa opzione.

    Screenshot della selezione di Migrazione.

  4. Selezionare il pulsante Crea per eseguire la migrazione da Amazon RDS per PostgreSQL a Database di Azure per PostgreSQL - Server flessibile. Se si usa il servizio di migrazione per la prima volta, viene visualizzata una griglia vuota con un prompt per iniziare la prima migrazione.

    Screenshot della creazione di una migrazione.

    Se sono già state create migrazioni alla destinazione Database di Azure per PostgreSQL, la griglia contiene informazioni sulle migrazioni tentate.

  5. Selezionare il pulsante **Crea**. Verrà visualizzata una serie di schede basate su procedura guidata per creare una migrazione in questa destinazione Database di Azure per PostgreSQL dall'istanza di origine PostgreSQL.

Attrezzaggio

La prima scheda è Configurazione, in cui l'utente deve fornire i dettagli sulla migrazione, ad esempio il nome delle migrazione e il tipo di server di origine, per avviare le migrazioni.

Screenshot della configurazione della migrazione nel portale di Azure.

  • Nome migrazione è l'identificatore univoco per ogni migrazione verso questa destinazione del server flessibile. Questo campo accetta solo caratteri alfanumerici e non accetta caratteri speciali tranne il trattino (-). Il nome non può iniziare con un trattino e deve essere univoco per il server di destinazione. Due migrazioni verso la stessa destinazione del server flessibile non possono avere lo stesso nome.

  • Tipo di server di origine: a seconda dell'origine PostgreSQL, è possibile selezionare il tipo di origine corrispondente, ad esempio un servizio PostgreSQL basato sul cloud, un'installazione locale o una macchina virtuale.

  • Opzione di migrazione consente di eseguire delle convalide prima di attivare una migrazione. È possibile scegliere una qualsiasi delle opzioni seguenti:

    • Convalida: controlla l'idoneità del server e del database per la migrazione alla destinazione.
    • Esegui migrazione: ignora le convalide e avvia le migrazioni.
    • Convalida ed esegui migrazione: esegue la convalida prima di attivare una migrazione. La migrazione viene attivata solo se non sono presenti errori di convalida.

È sempre consigliabile scegliere l'opzione Convalida o Convalida ed esegui migrazione per eseguire le convalide preliminari prima di eseguire la migrazione. Per altre informazioni sulla convalida preliminare della migrazione, vedere questa documentazione.

  • Modalità di migrazione consente di selezionare la modalità per la migrazione. Offline è l'opzione predefinita.

Selezionare il pulsante Avanti: Connetti all'origine.

Selezionare il server di runtime

Il server di runtime della migrazione è una funzionalità specializzata all'interno del servizio di migrazione, progettata per fungere da server intermedio durante la migrazione. Si tratta di un'istanza separata del server flessibile di Database di Azure per PostgreSQL, che non è il server di destinazione, ma viene usata per facilitare la migrazione dei database da un ambiente di origine accessibile solo tramite una rete privata.

Per altre informazioni sul server di runtime, vedere Server di runtime della migrazione.

Screenshot della pagina del server di runtime della migrazione.

Connetti all'origine

La scheda Connetti all'origine richiede di specificare i dettagli relativi all'origine selezionata nella scheda Configurazione, che è l'origine dei database.

Screenshot di Connectsourcemigration.

  • Nome server: specificare il nome host o l'indirizzo IP dell'istanza di PostgreSQL di origine
  • Porta: numero di porta del server di origine
  • Nome di accesso dell'amministratore server: nome utente del server PostgreSQL di origine
  • Password: password del server PostgreSQL di origine
  • Modalità SSL: i valori supportati sono preferita e obbligatoria. Quando SSL nel server PostgreSQL di origine è disattivato, usare SSLMODE=prefer. Se SSL nel server di origine è attivato, usare SSLMODE=require. I valori di SSL possono essere determinati nel file Postgresql.conf.
  • Test connessione: esegue il test di connettività tra destinazione e origine. Se la connessione viene stabilita correttamente, gli utenti possono procedere con il passaggio successivo. In caso contrario, è necessario identificare i problemi di rete tra la destinazione e l'origine e verificare il nome utente e la password per l'origine. Stabilire una connessione di test richiede alcuni minuti.

Quando la connessione di test riesce, selezionare Avanti: Selezionare la destinazione di migrazione

Selezionare la destinazione di migrazione

La scheda Selezionare la destinazione di migrazione mostra i metadati della destinazione del server flessibile, ad esempio il nome della sottoscrizione, il gruppo di risorse, il nome del server, la località e la versione di PostgreSQL.

Screenshot della schermata di selezione della destinazione di migrazione.

  • Nome utente amministratore: nome utente dell'amministratore del server PostgreSQL di destinazione
  • Password: password del server PostgreSQL di destinazione
  • Test connessione: esegue il test di connettività tra la destinazione e l'origine. Se la connessione viene stabilita correttamente, gli utenti possono procedere con il passaggio successivo. In caso contrario, è necessario identificare i problemi di rete tra la destinazione e l'origine e verificare il nome utente e la password per la destinazione. Il test di connessione di test richiede alcuni minuti per stabilire una connessione tra la destinazione e l'origine.

Quando la connessione di test riesce, selezionare Avanti: Selezionare i database per la migrazione

Selezionare i database per la migrazione

In questa scheda, un elenco di database utente si trova all'interno del server di origine selezionato nella scheda di configurazione. È possibile selezionare fino a otto database ed eseguirne la migrazione in un unico tentativo di migrazione. Se sono presenti più di otto database utente, il processo di migrazione viene ripetuto tra i server di origine e di destinazione per il set di database successivo.

Screenshot di FetchDBmigration.

Dopo aver scelto i database, selezionare Avanti: Riepilogo

Riepilogo

La scheda Riepilogo riepiloga tutti i dettagli di origine e destinazione per la creazione della convalida o della migrazione. Esaminare i dettagli e selezionare il pulsante di avvio.

Screenshot della schermata di riepilogo.

Monitorare la migrazione

Dopo aver selezionato il pulsante di avvio, entro pochi secondi viene visualizzata una notifica per indicare che la convalida o la creazione della migrazione è stata eseguita correttamente. Si verrà quindi reindirizzati automaticamente alla pagina Migrazione del server flessibile, che include una nuova voce per la convalida o la migrazione creata di recente.

Screenshot del monitoraggio della migrazione.

La griglia che mostra le migrazioni include queste colonne: Nome, Stato, Modalità di migrazione, Tipo di migrazione, Server di origine, Tipo del server di origine, Database, Durata e Ora inizio. Le voci vengono visualizzate nell'ordine decrescente dell'ora di inizio con la voce più recente in alto. È possibile usare il pulsante di aggiornamento per aggiornare lo stato della convalida o della migrazione. Selezionare il nome della migrazione nella griglia per visualizzare i dettagli associati.

Quando viene creata la convalida o la migrazione, questa passa allo stato InProgress e allo stato secondario PerformingPreRequisiteSteps. Il flusso di lavoro richiede 2-3 minuti per configurare l'infrastruttura di migrazione e le connessioni di rete.

Dettagli della migrazione

Nella scheda Configurazione è stata selezionata l'opzione di migrazione Convalida ed esegui migrazione. In questo scenario, le convalide vengono eseguite prima dell'avvio della migrazione. Quando lo stato secondario PerformingPreRequisiteSteps viene completato, il flusso di lavoro passa allo stato secondario Validation in Progress.

  • Se la convalida presenta errori, la migrazione passa a uno stato Failed.
  • Se la convalida viene completata senza errori, la migrazione viene avviata e il flusso di lavoro passa allo stato secondario Migrazione dei dati.

È possibile visualizzare i risultati della convalida e della migrazione a livello di istanza e di database.

Screenshot dei dettagli migrazione.

I possibili stati della migrazione includono:

Stati della migrazione

Stato Descrizione
InProgress È in corso la configurazione dell'infrastruttura di migrazione oppure è in corso la migrazione effettiva dei dati.
Annullata La migrazione viene annullata o eliminata.
Non riuscito La migrazione non è riuscita.
Convalida non riuscita La convalida non è riuscita.
Completato La migrazione è riuscita ed è stata completata.
WaitingForUserAction Applicabile solo per la migrazione online. In attesa dell'azione di cutover da parte dell'utente.

Stati secondari della migrazione

Sottostato Descrizione
PerformingPreRequisiteSteps La configurazione dell'infrastruttura è in corso per la migrazione dei dati.
Convalida in corso La convalida è in esecuzione.
MigratingData La migrazione dei dati è in corso.
CompletingMigration La migrazione è nelle fasi finali del completamento.
Completato La migrazione è stata completata.
Non riuscito La migrazione non è riuscita.

Stati secondari della convalida

Sottostato Descrizione
Non riuscito Convalida non riuscita.
Completato La convalida ha avuto esito positivo.
Avvertenza La convalida è in stato di avviso.

Cutover

Se sono presenti sia Esegui migrazione che Convalida ed esegui migrazione, il completamento della migrazione online richiede un altro passaggio: l'utente deve eseguire un'azione di cutover. Al termine della copia/clonazione dei dati di base, la migrazione passa allo stato WaitingForUserAction e allo stato secondario "WaitingForCutoverTrigger". In questo stato, l'utente può attivare il cutover dal portale selezionando la migrazione.

Prima di avviare il cutover, è importante assicurarsi che:

  • Le scritture nell'origine sono arrestate: il parametro Latency è 0 o vicino a 0. Le informazioni relative a Latency possono essere ottenute dalla schermata dei dettagli della migrazione, come illustrato di seguito:

    Screenshot dell cutover della migrazione.

  • Il valore latency diminuisce a 0 o vicino a 0

  • Il valore latency indica quando è avvenuta l'ultima sincronizzazione della destinazione con l'origine. A questo punto, le scritture nell'origine possono essere arrestate e il cutover può essere avviato. Se l'origine presenta traffico elevato, è consigliabile arrestare prima le scritture in modo che Latency possa avvicinarsi a 0 e successivamente avviare il cutover. L'operazione di cutover applica tutte le modifiche in sospeso dall'origine alla destinazione e completa la migrazione. Se si attiva un "Cutover" anche con il valore Latency, diverso da zero, la replica si arresta fino a quel momento. Tutti i dati rimangono nell'origine fino a quando il punto di cutover non viene applicato alla destinazione. Si supponga che la latenza fosse di 15 minuti nel punto di cutover; tutti i dati delle modifiche degli ultimi 15 minuti vengono quindi applicati alla destinazione. Il tempo dipende dal backlog delle modifiche apportate negli ultimi 15 minuti. Di conseguenza, è consigliabile che la latenza passi a zero o si avvicini a zero prima di attivare il cutover.

    Screenshot di Confirmcutovermigration.

  • La migrazione passa allo stato Succeeded non appena lo stato secondario Migrating Data o il cutover (nella migrazione online) viene completato correttamente. Se si verifica un problema nello stato secondario Migrating Data, la migrazione passa a uno stato Failed.

    Screenshot della migrazione riuscita.

Controllare la migrazione al termine dell'operazione

Dopo aver completato i database, è necessario convalidare manualmente i dati tra origine e destinazione e verificare che tutti gli oggetti nel database di destinazione siano stati creati correttamente.

Dopo la migrazione, è possibile effettuare le attività seguenti:

  • Verificare i dati nel server flessibile e assicurarsi che si tratti di una copia esatta dell'istanza di origine.
  • Dopo la verifica, abilitare l'opzione di disponibilità elevata nel server flessibile in base alle esigenze.
  • Modificare lo SKU del server flessibile in modo che corrisponda alle esigenze dell'applicazione. Questa modifica richiede un riavvio del server di database.
  • Se si modificano i parametri del server dai relativi valori predefiniti nell'istanza di origine, copiare questi valori nel server flessibile.
  • Copiare le altre impostazioni del server dall'istanza di origine al server flessibile, ad esempio tag, avvisi e regole del firewall (se applicabile).
  • Apportare modifiche all'applicazione per puntare le stringhe di connessione a un server flessibile.
  • Monitorare attentamente le prestazioni del database per assicurarsi che non sia necessaria l'ottimizzazione delle prestazioni.