- Che cos'è Database Migration Service?
- Quali origini sono supportate?
- È disponibile il supporto per più versioni?
- Di quali componenti di dati, schema e metadati viene eseguita la migrazione?
- Quali modifiche vengono replicate durante la migrazione continua?
- Elementi di cui non viene eseguita la migrazione
- Quali metodi di networking vengono utilizzati?
- Quali sono le limitazioni note?
- Che cos'è Database Migration Service?
- Database Migration Service è un servizio che semplifica la migrazione dei dati a Google Cloud. Database Migration Service ti aiuta a eseguire il lift and shift dei carichi di lavoro PostgreSQL in AlloyDB.
- Quali fonti sono supportate?
-
- Amazon RDS 9.6.10 e versioni successive, 10.5 e versioni successive, 11.1 e versioni successive, 12, 13, 14, 15
- Amazon Aurora 10.11 e versioni successive, 11.6 e versioni successive, 12.4 e versioni successive, 13.3 e versioni successive, 14, 15
- PostgreSQL autogestito (on-premise o su qualsiasi VM cloud sotto il tuo controllo totale) 9.4, 9.5, 9.6, 10, 11, 12, 13, 14, 15
- Cloud SQL 9.6, 10, 11, 12, 13, 14, 15
- Quali destinazioni sono supportate?
-
- AlloyDB per PostgreSQL 14, 15, 16
- È disponibile il supporto per più versioni?
- Database Migration Service supporta le migrazioni da PostgreSQL ad AlloyDB da qualsiasi versione del database di origine supportata.
- Per quali componenti di dati, schema e metadati viene eseguita la migrazione?
- Database Migration Service esegue la migrazione di schema, dati e metadati dall'origine alla destinazione. Nell'ambito della migrazione del database viene eseguita la migrazione di tutti i seguenti componenti di dati, schema e metadati:
Migrazione dei dati
- Tutti gli schemi e tutte le tabelle del database selezionato.
- Denominazione
- Chiave primaria
- Tipo di dati
- Posizione ordinale
- Valore predefinito
- Supporto di valori Null
- Attributi con incremento automatico
- Indici secondari
- Stored procedure
- Funzioni
- Trigger
- Visualizzazioni
- Vincoli delle chiavi esterne
- Quali modifiche vengono replicate durante la migrazione continua?
-
Solo le modifiche DML vengono aggiornate automaticamente durante la migrazione. La gestione del DDL in modo che i database di origine e di destinazione rimangano compatibili è responsabilità dell'utente e può essere eseguita in due modi:
- Interrompi le scritture sull'origine ed esegui i comandi DDL sia sull'origine che sulla destinazione. Prima di eseguire i comandi DDL sulla destinazione, concedi il ruolo
alloydbexternalsync
all'utente Cloud SQL che applica le modifiche DDL. Per abilitare l'invio di query o la modifica dei dati, concedi il ruoloalloydbexternalsync
agli utenti Cloud SQL pertinenti. Utilizza
pglogical.replicate_ddl_command
per eseguire DDL su origine e destinazione in un punto coerente. L'utente che esegue questo comando deve avere lo stesso nome utente sia nella destinazione sia nell'origine e deve essere il superutente o il proprietario dell'elemento di cui viene eseguita la migrazione (ad esempio la tabella, la sequenza, la vista o il database).Ecco alcuni esempi di utilizzo di
pglogical.replicate_ddl_command
.Per aggiungere una colonna a una tabella di database, esegui il seguente comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] add column surname varchar(20)', '{default}');
Per cambiare il nome di una tabella di database, esegui il seguente comando:
select pglogical.replicate_ddl_command('ALTER TABLE [schema].[table] RENAME TO [table_name]','{default}');
Per creare una tabella di database, esegui i seguenti comandi:
select pglogical.replicate_ddl_command(command := 'CREATE TABLE [schema].[table] (id INTEGER PRIMARY KEY, name VARCHAR);', replication_sets := ARRAY['default'']);
select pglogical.replication_set_add_table('default', '[schema].[table]');
- Interrompi le scritture sull'origine ed esegui i comandi DDL sia sull'origine che sulla destinazione. Prima di eseguire i comandi DDL sulla destinazione, concedi il ruolo
- Elementi di cui non viene eseguita la migrazione
-
Per aggiungere utenti all'istanza di destinazione AlloyDB, aggiungili dal client PostgreSQL. Scopri di più su come creare e gestire gli utenti PostgreSQL.
Gli oggetti di grandi dimensioni non possono essere riproduttivi perché la funzionalità di decodifica logica di PostgreSQL non supporta le modifiche di decodifica degli oggetti di grandi dimensioni. Per le tabelle con tipo di colonna oid che fa riferimento a oggetti di grandi dimensioni, le righe vengono comunque sincronizzate e le nuove righe vengono replicate. Tuttavia, il tentativo di accedere all'oggetto di grandi dimensioni nel database di destinazione (lettura utilizzando lo_get, esportazione utilizzando lo_export o controllo del catalogo
pg_largeobject
per l'oid specificato) non va a buon fine e viene visualizzato un messaggio che indica che l'oggetto di grandi dimensioni non esiste.Per le tabelle senza chiavi primarie, Database Migration Service supporta la migrazione degli snapshot iniziali e delle istruzioni
INSERT
durante la fase di acquisizione dei dati modificati (CDC). Devi eseguire manualmente la migrazione delle istruzioniUPDATE
eDELETE
.Database Migration Service non esegue la migrazione dei dati dalle viste materializzate, ma solo dello schema della vista. Per compilare le visualizzazioni, esegui il seguente comando:
REFRESH MATERIALIZED VIEW view_name
.Gli stati
SEQUENCE
(ad esempiolast_value
) nella nuova destinazione AlloyDB potrebbero variare dagli statiSEQUENCE
di origine. - Quali metodi di networking vengono utilizzati?
- Per creare una migrazione in Database Migration Service, è necessario stabilire la connettività tra l'origine e l'istanza Cloud SQL di destinazione. Sono supportati diversi metodi.
Scegli quello più adatto al carico di lavoro specifico.
Metodo di networking Descrizione Vantaggi Svantaggi Tunnel SSH inverso tramite VM ospitata nel cloud Stabilisce la connettività dalla destinazione all'origine tramite un tunnel SSH inverso sicuro. Richiede una VM bastion host nel progetto Google Cloud e una macchina (ad esempio un laptop sulla rete) con connettività all'origine. Database Migration Service raccoglie le informazioni richieste al momento della creazione della migrazione e genera automaticamente lo script per la configurazione. - Facile da configurare.
- Non richiede alcuna configurazione personalizzata del firewall.
- Consigliato per scenari di migrazione di breve durata (POC o piccole migrazioni di database).
- La VM Bastion è di tua proprietà e la gestisci.
- Potrebbero essere applicati costi aggiuntivi.
Proxy TCP tramite una VM ospitata nel cloud Stabilisce la connettività dalla destinazione all'origine tramite un proxy TCP tramite VM ospitata nel cloud. Database Migration Service raccoglie le informazioni richieste al momento della creazione della migrazione e genera automaticamente lo script per la configurazione. Rilevante per le migrazioni ad AlloyDB in cui l'origine si trova nella vecchia architettura di rete. - Facile da configurare.
- Non richiede alcuna configurazione personalizzata del firewall.
- La VM Bastion è di tua proprietà e gestita da te e potrebbe comportare costi aggiuntivi.
Peering VPC Questo metodo funziona configurando i VPC in modo che comunichino tra loro. - Soluzione nativa Google Cloud .
- Facile da configurare.
- Larghezza di banda elevata
- Consigliato per migrazioni di lunga durata o con volumi elevati.
Applicabile solo se sia i database di origine che quelli di destinazione sono ospitati in Google Cloud. VPN Configura un tunnel VPN IPSec che connette la rete interna e la VPC di Google Cloud tramite una connessione sicura su internet pubblico. Utilizza la VPN Google Cloud o qualsiasi soluzione VPN configurata per la rete interna. - Soluzione di connettività solida e scalabile.
- Larghezza di banda medio-alta.
- Sicurezza integrata.
- Offerte come soluzioni Google Cloud o di terze parti.
- Costo aggiuntivo.
- Configurazione non banale (a meno che non sia già implementata).
Cloud Interconnect Utilizza una connessione ad alta disponibilità e bassa latenza tra la rete on-premise e Google Cloud. Larghezza di banda massima, ideale per migrazioni di grandi volumi che richiedono molto tempo. - Costo aggiuntivo.
- La connessione non è sicura per impostazione predefinita.
- Configurazione non banale (a meno che non sia già implementata).
- Quali sono le limitazioni note?
- Consulta le limitazioni note.