Per le migrazioni PostgreSQL omogenee a Cloud SQL, Database Migration Service si connette all'istanza Cloud SQL per PostgreSQL di destinazione e gestisce il processo di migrazione continua per suo conto. L'istanza di destinazione stabilisce la connessione al database di origine, mentre Database Migration Service orchestra e monitora la pipeline di dati end-to-end.
Per le migrazioni PostgreSQL omogenee standard a Cloud SQL, Database Migration Service supporta le migrazioni continue.
In una migrazione continua, i dati iniziali vengono caricati da un dump di snapshot, quindi le modifiche ai dati in corso vengono replicate continuamente dal write-ahead log (WAL) del database di origine utilizzando la decodifica logica e l'estensione pglogical.
Per le
migrazioni con avvio rapido continue, Database Migration Service utilizza pgnative.
Fasi della migrazione continua
Le migrazioni continue si svolgono nelle seguenti fasi sequenziali:
Migrazioni standard
-
Configurazione e orchestrazione della replica: quando crei il job di migrazione, Database Migration Service configura l'istanza Cloud SQL per PostgreSQL di destinazione in modo che agisca come replica e stabilisce le sottoscrizioni di replica con l'estensione
pglogical. Quando esegui la migrazione a un'istanza Cloud SQL esistente, Database Migration Service retrocede l'istanza per configurarla come replica esterna (senza impostare il database in modalità di sola lettura). - Fase di snapshot iniziale: quando avvii il job di migrazione, Database Migration Service acquisisce uno snapshot coerente dei database selezionati nell'istanza di origine. Questo processo richiede un breve blocco della tabella (in genere meno di 10 secondi per tabella) durante l'inizializzazione dello snapshot. Il database di origine continua ad accettare letture e scritture durante tutto il processo.
- Fase di caricamento dei dati: Database Migration Service trasmette i dati dello snapshot iniziale dal database di origine e li carica nell'istanza Cloud SQL per PostgreSQL di destinazione.
- Creazione di vincoli e indici: al termine del caricamento iniziale dei dati, vengono creati i vincoli della tabella (incluse le chiavi primarie e le chiavi esterne) e gli indici secondari nell'istanza di destinazione. La separazione del caricamento dei dati dalla creazione dei vincoli ottimizza la velocità di importazione dati.
-
Fase Change Data Capture (CDC): una volta applicati i vincoli, Database Migration Service entra nella fase CDC continua. Durante il CDC, Database Migration Service acquisisce le modifiche DML in corso dal flusso di replica logica del database di origine utilizzando
pglogicale le applica all'istanza di destinazione quasi in tempo reale. - Fase di cutover e promozione: quando è tutto pronto per trasferire il traffico dell'applicazione all'istanza di destinazione, interrompi le scritture nel database di origine, verifica che il ritardo di replica raggiunga lo zero e avvia la promozione in Database Migration Service. Durante la promozione, Database Migration Service disconnette l'istanza di destinazione dall'origine, rimuove gli slot di replica e trasforma la destinazione in un'istanza principale Cloud SQL per PostgreSQL autonoma di lettura/scrittura.
Migrazioni rapide
-
Configurazione e orchestrazione della replica: quando crei il job di migrazione, Database Migration Service configura automaticamente la connettività di rete su IP privati utilizzando le interfacce Private Service Connect (creando automaticamente configurazioni di connettività privata, collegamenti di rete e subnet). Stabilisce la replica tra i database di origine e di destinazione utilizzando la replica logica di PostgreSQL (con
pgnative), senza richiedere l'installazione dell'estensionepglogicalnell'origine o la retrocessione dell'istanza di destinazione. La destinazione può essere un'istanza attiva che gestisce il traffico verso altri database. - Fase di snapshot iniziale: quando avvii il job di migrazione, Database Migration Service acquisisce uno snapshot coerente dei database selezionati (esegue la migrazione di un massimo di 50 database per job) sul server del database di origine. Il database di origine continua ad accettare letture e scritture durante tutto il processo.
- Fase di caricamento dei dati: Database Migration Service trasmette i dati dello snapshot iniziale direttamente all'istanza Cloud SQL per PostgreSQL di destinazione tramite connettività privata. La proprietà degli oggetti del database di destinazione viene assegnata all'utente della migrazione generato da Database Migration Service (quando utilizzi la console Google Cloud ) o specificato con Google Cloud CLI.
- Creazione di vincoli e indici: al termine del caricamento iniziale dei dati, vengono creati vincoli di tabella e indici secondari nell'istanza di destinazione per garantire la fedeltà dello schema e massimizzare le prestazioni di importazione.
-
Fase Change Data Capture (CDC): una volta applicati i vincoli, Database Migration Service entra nella fase CDC continua. Durante il CDC, Database Migration Service trasmette in flussi le modifiche DML in corso dal flusso di replica logica PostgreSQL
pgnativee le applica all'istanza di destinazione quasi in tempo reale. Per le tabelle senza chiavi primarie, le operazioniUPDATEeDELETEpossono essere replicate quando l'identità della replica della tabella è configurata suINDEXoFULL. - Fase di cutover e promozione: quando è tutto pronto per trasferire il traffico dell'applicazione all'istanza di destinazione, interrompi le scritture nel database di origine, verifica che il ritardo di replica raggiunga lo zero e avvia la promozione in Database Migration Service. Durante la promozione, Database Migration Service finalizza la replica CDC, termina gli slot di replica e scollega la pipeline di migrazione, lasciando i database Cloud SQL per PostgreSQL di destinazione completamente operativi per le connessioni client.
Passaggi successivi
Per scoprire di più sul supporto di dati e funzionalità di PostgreSQL in Database Migration Service, consulta Limitazioni note.
Per una procedura dettagliata completa della migrazione, consulta Inizia a utilizzare le migrazioni di Cloud SQL per PostgreSQL.