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
- Installare test_decoding per l'installazione dell'origine
- Configurare l'installazione di destinazione
- Abilitare Change Data Capture come origine
- Configurare la configurazione di rete
- Abilitare le estensioni
- Controllare i parametri del server
- Controllare gli utenti e i ruoli
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
su1
. - Impostare
max_replication_slots
su un valore maggiore di1
. Il valore deve essere maggiore del numero di database selezionati per la migrazione. - Impostare
max_wal_senders
su un valore maggiore di1
. Deve essere almeno lo stesso valore del valore permax_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 su0 (zero)
disabilita il meccanismo di timeout ed è un'impostazione valida per la migrazione.
- Impostare
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:
Aprire il Web browser e quindi passare al portale di Azure. Immettere le credenziali di accesso.
Passare all'istanza di Database di Azure per PostgreSQL - Server flessibile.
Nel menu del servizio selezionare Migrazione.
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.
Selezionare Crea per eseguire una serie di schede per configurare una migrazione.
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.
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.
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.
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.2
o un FQDN PostgreSQL,flexibleserver.postgres.database.azure.com
ad esempio , se il server DNS personalizzato contiene la zonapostgres.database.azure.com
DNS o inoltra le query per questa zona a168.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.
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.
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.
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.
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.
- Controllare la convalida relativa al controllo della connettività per la versione di origine (controllo del
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.
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:
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.
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 .
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.