Condividi tramite


Esercitazione: Eseguire la migrazione online da Amazon Aurora PostgreSQL a Database di Azure per PostgreSQL con il servizio di migrazione

Questo articolo descrive come eseguire la migrazione del database PostgreSQL da Amazon Aurora a Database di Azure per PostgreSQL online.

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

In questa esercitazione:

  • Completare i prerequisiti
  • Avviare la migrazione
  • Monitorare la migrazione
  • Avviare un cutover
  • Verificare la migrazione

Prerequisiti

Prima di avviare una migrazione usando il servizio di migrazione in Database di Azure per PostgreSQL, è importante completare i prerequisiti seguenti. Questi prerequisiti sono progettati specificamente 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 postgreSQL di origine è precedente alla 9.5, aggiornare la versione alla versione 9.5 o successiva prima di avviare la migrazione.

Installare test_decoding per l'installazione dell'origine

  • Il plug-in test_decoding riceve la registrazione write-ahead (WAL) tramite il meccanismo di decodifica logica. Il plug-in decodifica WAL in rappresentazioni di testo delle operazioni eseguite.
  • In Amazon RDS per PostgreSQL il plug-in test_decoding è preinstallato e pronto per la replica logica. È possibile configurare facilmente slot di replica logica e trasmettere modifiche WAL, ad esempio per Change Data Capture (CDC) o per la replica in sistemi esterni.

Per altre informazioni sul plug-in test_decoding, vedere la documentazione di PostgreSQL.

Configurare l'installazione di destinazione

Prima di iniziare la migrazione, è necessario creare un'istanza di Database di Azure per PostgreSQL in Azure. Lo SKU di cui è stato effettuato il provisioning per Database di Azure per PostgreSQL - Server flessibile deve corrispondere all'origine.

Per altre informazioni, vedere Creare un'istanza di 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 alle autorizzazioni di replica, eseguire il comando seguente:

    GRANT rds_replication TO <username>;
    
  • Nell'istanza di PostgreSQL di origine modificare i parametri seguenti nel gruppo di parametri cluster di database creando un nuovo gruppo di parametri:

    • Impostare rds.logical_replication su 1.
    • Impostare max_replication_slots su un valore maggiore di 1. Il valore deve essere maggiore del numero di database selezionati per la migrazione.
    • Impostare max_wal_senders su un valore maggiore di 1. Deve essere almeno lo stesso valore del valore per max_replication_slots, più il numero di mittenti già usati nell'istanza.
    • Il wal_sender_timeout parametro termina le connessioni di replica inattive più lunghe del numero specificato di millisecondi. Il valore predefinito per un'istanza di Amazon Aurora PostgreSQL è 30000 milliseconds (30 seconds). L'impostazione del valore su 0 (zero) disabilita il meccanismo di timeout ed è un'impostazione valida per la migrazione.
  • Nel server flessibile di destinazione, per evitare che la migrazione online esaurisca lo spazio di archiviazione per archiviare i log, assicurarsi di disporre di spazio di archiviazione sufficiente nello spazio di tabella usando un disco gestito di cui è stato effettuato il provisioning. Disabilitare il parametro azure.enable_temp_tablespaces_on_local_ssd del server per la durata della migrazione. Ripristinare il parametro allo stato originale dopo la migrazione.

Configurare la configurazione 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 destinazione in Database di Azure per PostgreSQL.

Per informazioni sulla configurazione di rete, vedere Scenari di rete per il servizio di migrazione.

Abilitare le estensioni

Per garantire una migrazione corretta usando il servizio di migrazione in Database di Azure per PostgreSQL, potrebbe essere necessario verificare le estensioni per l'istanza di PostgreSQL di origine. Le estensioni offrono funzionalità e funzionalità 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.

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

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

Nota

Quando si apportano modifiche al shared_preload_libraries parametro, è necessario un riavvio.

Controllare i parametri del server

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

  • Associare i valori dei parametri del server dal database PostgreSQL di origine all'istanza di Database di Azure per PostgreSQL. Nella portale di Azure passare a Parametri del server e aggiornare manualmente i valori.

  • Salvare le modifiche del parametro e riavviare l'istanza di 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 gestire separatamente la migrazione di utenti e ruoli perché richiedono un intervento manuale.

  • Migrazione manuale di utenti e ruoli: gli utenti e i ruoli associati devono essere migrati manualmente all'istanza di Database di Azure per PostgreSQL. Per facilitare questo processo, è possibile usare l'utilità pg_dumpall con il --globals-only flag per esportare oggetti globali, ad esempio ruoli e account utente.

    Eseguire il comando seguente. Sostituire <username> con il nome utente effettivo e sostituire <filename> con il nome che si vuole usare per il file di output.

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

Completando questi passaggi, è possibile assicurarsi che gli account utente e i ruoli vengano migrati correttamente in Database di Azure per PostgreSQL senza problemi correlati alle restrizioni dell'utente con privilegi avanzati.

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

È fondamentale disabilitare la disponibilità elevata (affidabilità) e le repliche di lettura nell'ambiente di destinazione prima di avviare la migrazione. Queste funzionalità devono essere abilitate solo dopo il completamento della migrazione.

Avviare 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 semplice e intuitiva basata su procedura guidata per guidare l'utente attraverso la migrazione. Completando i passaggi descritti in questa esercitazione, è possibile trasferire facilmente il database in Database di Azure per PostgreSQL - Server flessibile e sfruttare le potenti funzionalità e la scalabilità.

Per eseguire la migrazione usando il portale di Azure, configurare prima di tutto l'attività di migrazione. Connettersi quindi all'origine e alla destinazione e avviare la migrazione.

Configurare l'attività di migrazione

Per configurare l'attività di migrazione nel portale di Azure:

  1. Aprire il Web browser e quindi passare al portale di Azure. Immettere le credenziali di accesso.

  2. Passare all'istanza di Database di Azure per PostgreSQL - Server flessibile.

  3. Nel menu del servizio selezionare Migrazione.

    Screenshot della selezione di Migrazione.

  4. Selezionare Crea per eseguire la migrazione da Amazon Aurora a un server flessibile.

    La prima volta che si usa il servizio di migrazione, viene visualizzata una griglia vuota con una richiesta per avviare la prima migrazione. Se le migrazioni alla destinazione del server flessibile sono già state create, la griglia contiene informazioni sui tentativi di migrazione.

  5. Selezionare Crea per eseguire una serie di schede per configurare una migrazione.

    creenshot della selezione della migrazione nella portale di Azure.

Attrezzaggio

Immettere o selezionare le informazioni seguenti:

  • Nome migrazione: immettere un identificatore univoco per ogni migrazione a questa destinazione server flessibile. È possibile usare solo caratteri alfanumerici e trattini (-) nel nome della migrazione. Il nome non può iniziare con un trattino e deve essere univoco per un server di destinazione. Due migrazioni alla stessa destinazione server flessibile possono avere lo stesso nome.

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

  • Opzione di migrazione: scegliere una delle opzioni seguenti per una convalida della premigration:

    • Convalida. Controlla l'idoneità del server e del database per la migrazione all'origine di destinazione.
    • Eseguire la migrazione. Ignora le convalide e avvia la migrazione.
    • Convalidare ed eseguire la migrazione. Esegue la convalida prima di attivare una migrazione. Se non sono presenti errori di convalida, viene attivata la migrazione.

    È consigliabile selezionare l'opzione Convalida o Convalida ed Esegui migrazione per le convalide di premi.

    Per altre informazioni, vedere Convalida della premigration.

  • Modalità di migrazione: selezionare la modalità per la migrazione. L'opzione predefinita è Offline.

Selezionare Avanti: Connetti all'origine.

Screenshot della scheda configurazione della migrazione nella portale di Azure.

Selezionare il server di runtime

Il server di runtime di migrazione è una funzionalità specializzata del servizio di migrazione. Il server di runtime funge da server intermedio durante la migrazione. Si tratta di un'istanza separata di Database di Azure per PostgreSQL - Server flessibile che non è il server di destinazione. Il server di runtime facilita la migrazione dei database da un ambiente di origine accessibile solo tramite una rete privata.

Per altre informazioni, vedere Server di runtime di migrazione.

Screenshot della scheda Server di runtime di migrazione.

Connettersi all'origine

Nella scheda Connetti all'origine immettere o selezionare le informazioni seguenti per l'origine del database:

  • Nome server: immettere il nome host o l'indirizzo IP dell'istanza di PostgreSQL di origine.
  • Porta: immettere il numero di porta del server di origine.
  • Nome di accesso dell'amministratore del server: immettere il nome utente del server PostgreSQL di origine.
  • Password: immettere la password del server PostgreSQL di origine.
  • Modalità SSL: i valori supportati sono Prefer e Require. Quando Secure Sockets Layer (SSL) nel server PostgreSQL di origine è disattivato, selezionare Prefer (Prefer). Se SSL nel server di origine è attivo, selezionare Richiedi. I valori SSL vengono impostati nel file postgresql.conf .
  • Test connessione: avvia un test di connettività tra la destinazione e l'origine. Al termine della connessione, passare al passaggio successivo per identificare i problemi di rete tra la destinazione e l'origine e verificare il nome utente e la password per l'origine. Per stabilire una connessione di test sono necessari alcuni minuti.

Dopo aver completato la connessione di test, selezionare Avanti: Selezionare la destinazione di migrazione.

Screenshot della scheda Connetti all'origine.

Selezionare la destinazione della migrazione

Nella scheda Seleziona destinazione della migrazione immettere o selezionare le informazioni seguenti per la destinazione del server flessibile, oltre alla sottoscrizione, al gruppo di risorse e al nome del server:

  • Nome utente amministratore: nome utente amministratore del server PostgreSQL di destinazione.
  • Password: password del server PostgreSQL di destinazione.
  • FQDN/IP personalizzato (facoltativo): il campo FQDN/IP personalizzato è facoltativo e può essere usato quando la destinazione si trova dietro un server DNS personalizzato o dispone di spazi dei nomi DNS personalizzati, rendendolo accessibile solo tramite FQDN o indirizzi IP specifici. Ad esempio, può includere voci come flexibleserver.example.com, 198.1.0.2o un FQDN PostgreSQL, flexibleserver.postgres.database.azure.comad esempio , se il server DNS personalizzato contiene la zona postgres.database.azure.com DNS o inoltra le query per questa zona a 168.63.129.16, dove il nome di dominio completo viene risolto nella zona DNS pubblica o privata di Azure.
  • Test connessione: avvia un test di connettività tra la destinazione e l'origine. Al termine della connessione, passare al passaggio successivo per identificare i problemi di rete tra la destinazione e l'origine e verificare il nome utente e la password per il server di destinazione. Per stabilire una connessione di test sono necessari alcuni minuti.

Dopo aver completato la connessione di test, selezionare Avanti: selezionare i database per la migrazione.

Screenshot della scheda Connetti migrazione di destinazione.

Selezionare i database per la migrazione

Nella scheda Seleziona database per la migrazione selezionare da un elenco di database utente di cui eseguire la migrazione dal server PostgreSQL di origine.

Dopo aver selezionato i database, selezionare Avanti: Riepilogo.

Screenshot della scheda Seleziona database per la migrazione.

Riepilogo

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

Screenshot della scheda Riepilogo migrazione.

Monitorare la migrazione

Dopo pochi secondi dopo aver selezionato Avvia convalida e migrazione, viene visualizzata una notifica che indica che la convalida o la creazione della migrazione ha esito positivo. Si viene reindirizzati al riquadro Migrazione dell'istanza del server flessibile. La voce di stato è InProgress e lo stato secondario è PerformingPreRequisiteSteps. Il flusso di lavoro richiede da 2 a 3 minuti per configurare l'infrastruttura di migrazione e controllare le connessioni di rete.

Screenshot del riquadro Monitoraggio migrazione.

La griglia che visualizza le migrazioni include queste colonne:

  • Nome
  • Stato
  • Modalità di migrazione
  • Tipo di migrazione
  • Server di origine
  • Tipo del server di origine
  • Database
  • Durata
  • Ora di inizio

Le voci vengono visualizzate in ordine decrescente di ora di inizio, con la voce più recente nella parte superiore. È possibile selezionare Aggiorna nella barra dei menu per aggiornare lo stato dell'esecuzione della convalida o della migrazione.

Dettagli della migrazione

Nell'elenco delle migrazioni selezionare il nome di una migrazione per visualizzare i dettagli associati.

Nella scheda Setup (Installazione) selezionare l'opzione di migrazione Validate and Migrate (Convalida e migrazione). In questo scenario, le convalide vengono completate prima dell'avvio della migrazione. Al termine dell'istruzione PerformingPreRequisiteSteps , il flusso di lavoro passa allo stato secondario Convalida in corso .

  • Se la convalida presenta errori, la migrazione passa a uno stato Failed.

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

È possibile controllare i dettagli di convalida a livello di istanza e a livello di database:

  • Convalida a livello di istanza:

    • Controllare la convalida relativa al controllo della connettività per la versione di origine (controllo del PostgreSQL version >= 9.5 parametro del server) se le estensioni sono abilitate nei parametri del server dell'istanza di Database di Azure per PostgreSQL - Server flessibile.
  • Convalida a livello di database:

    • Controllare la convalida dei singoli database correlati al supporto delle estensioni e delle regole di confronto in Database di Azure per PostgreSQL - Server flessibile.

È possibile visualizzare lo stato corrente per la migrazione e la convalida nel riquadro dei dettagli della migrazione.

Screenshot dei dettagli della migrazione.

Le tabelle seguenti descrivono alcuni possibili stati di migrazione e sottostate.

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 è stata completata e completata.
WaitingForUserAction Applicabile solo nelle migrazioni online. In attesa che un utente esegua un cutover.

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 Migrazione non riuscita.

Stati secondari della convalida

Sottostato Descrizione
Non riuscito Convalida non riuscita.
Completato La convalida ha avuto esito positivo.
Avvertenza La convalida mostra un avviso.

Avviare un cutover

Se viene visualizzata la migrazione e la convalida e la migrazione , il completamento della migrazione online richiede il passaggio aggiuntivo di avvio di un cutover. Al termine della copia e del clone dei dati di base, la migrazione passa allo stato WaitingForUserAction e alla sottostate WaitingForCutoverTrigger . In questo stato, l'utente può attivare il cutover dal portale selezionando la migrazione.

Prima di avviare un cutover, è importante assicurarsi che:

  • Le scritture nell'origine vengono arrestate.
  • Il latency valore diminuisce a 0 o vicino a 0.

È possibile ottenere il latency valore nel riquadro dei dettagli della migrazione:

Screenshot del riquadro di migrazione Cutover.

Il valore latency indica quando è avvenuta l'ultima sincronizzazione della destinazione con l'origine. A questo punto, la scrittura nell'origine può essere arrestata e il cutover può essere avviato. Se il traffico sul server di origine è elevato, è consigliabile arrestare prima le scritture in modo che latency possano raggiungere il valore 0. Quindi, avviare un 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 un valore diverso da zero per latency, la replica si arresta in quel momento. Tutti i dati si trova nell'origine fino a quando il punto di cutover non viene applicato alla destinazione. Ad esempio, se la latenza è di 15 minuti al punto di cutover, tutti i dati modificati negli ultimi 15 minuti vengono applicati alla destinazione. Il tempo necessario per completare il cutover dipende dal backlog delle modifiche che si sono verificate durante questi 15 minuti. È quindi consigliabile che la latenza vada a zero o quasi zero prima di attivare il cutover.

Screenshot che mostra la finestra di dialogo in cui viene confermato un cutover durante la migrazione.

La migrazione passa allo stato Succeeded quando l'istruzione di migrazione dei dati o il cutover (in una migrazione online) termina correttamente. Se si verifica un problema nello stato secondario Migrazione dei dati , la migrazione passa a uno stato Non riuscito .

Screenshot che mostra i risultati di una migrazione riuscita nel portale di Azure.

Verificare la migrazione

Al termine della migrazione del database, convalidare manualmente i dati tra l'origine e la destinazione. Verificare che tutti gli oggetti nel database di destinazione siano stati creati correttamente.

Dopo la migrazione, è possibile completare queste attività:

  • 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 a disponibilità elevata nel server flessibile in base alle esigenze.
  • Modificare lo SKU (versione) 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 valori predefiniti nell'istanza di origine, copiare i valori dei parametri del server 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.