Questa pagina descrive come eseguire la migrazione dei database in un'istanza Cloud SQL per PostgreSQL preesistente creata direttamente in Cloud SQL.
Questo percorso è utile per gli scenari in cui l'istanza di destinazione è gestita da un team diverso o se devi creare l'istanza al di fuori di Database Migration Service (ad esempio, se utilizzi Terraform, hai bisogno di flag personalizzati specifici o hai bisogno di topologie di rete avanzate). Se la tua migrazione ha requisiti diversi, valuta la possibilità di seguire un flusso di migrazione diverso. Per saperne di più, consulta Inizia a utilizzare le migrazioni di PostgreSQL.
A livello generale, la migrazione prevede i seguenti passaggi:
- Configura il database di origine per consentire a Database Migration Service di spostare i dati nei nuovi database.
- Configura la connettività di rete all'istanza PostgreSQL di origine.
- Prepara e configura l'istanza Cloud SQL di destinazione esistente.
- Crea il profilo di connessione di origine e il job di migrazione.
- Avvia e monitora il job di migrazione.
- Promuovi il job di migrazione e sposta la tua applicazione per utilizzare i nuovi database.
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili diGoogle Cloud:
- Cloud SQL (consulta i prezzi di Cloud SQL).
- Se utilizzato per archiviare le chiavi di crittografia gestite dal cliente (CMEK): Cloud Storage (consulta i prezzi di Cloud Storage).
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Prima di iniziare
- Verifica se questo percorso di migrazione può supportare completamente il tuo scenario.
Consulta le seguenti pagine:
- Origini e destinazioni supportate nella pagina Panoramica dello scenario elenca tutte le versioni di origine e destinazione supportate.
- Le limitazioni note per le istanze esistenti descrivono le limitazioni, incluso il requisito che l'istanza di destinazione esistente non deve contenere dati definiti dall'utente esistenti.
- Valuta in quale regione vuoi creare il database di destinazione. Database Migration Service è un prodotto completamente regionale, il che significa che tutte le entità correlate alla migrazione (profili di connessione di origine e di destinazione, job di migrazione, database di destinazione, workspace della conversione) devono essere salvate in un'unica regione.
- Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .
- Abilita le API Database Migration Service e Cloud SQL Admin.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire migrazioni PostgreSQL omogenee con Database Migration Service, chiedi all'amministratore di concederti i ruoli IAM richiesti nel progetto:
-
Database Migration Admin (
roles/datamigration.admin) -
Cloud SQL Editor (
roles/cloudsql.editor) - Se devi creare o configurare l'istanza di destinazione al di fuori di Database Migration Service, devi anche disporre del ruolo
Cloud SQL Admin (
roles/cloudsql.admin) -
Cloud SQL Studio User (
roles/cloudsql.studioUser)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso nella documentazione di Identity and Access Management.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire migrazioni PostgreSQL omogenee con Database Migration Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eseguire migrazioni PostgreSQL omogenee con Database Migration Service sono necessarie le seguenti autorizzazioni:
datamigration.*cloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.updatecloudsql.instances.deletecloudsql.operations.getcloudsql.users.listcloudsql.users.getcloudsql.users.createcloudsql.users.updatecloudsql.users.delete
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Prepara il database di origine
Per preparare i dati di origine per la migrazione, segui questi passaggi:
- Scegli e configura il metodo di connettività di rete di origine.
- Configura l'istanza del database di origine. In linea generale, questo include i seguenti passaggi:
- Installa l'estensione PostgreSQL
pglogical(versione 2.2.1 o successive) sul database di origine e su tutti i database di cui eseguire la migrazione. - Configura i parametri PostgreSQL: imposta
wal_level = logicale assicurati che i valori dimax_replication_slots,max_wal_sendersemax_worker_processessiano adeguati. - Concedi i privilegi di replica all'utente della migrazione e configura
pg_hba.confper consentire le connessioni dall'istanza Cloud SQL di destinazione.
Per istruzioni dettagliate, consulta Configura il database di origine.
- Installa l'estensione PostgreSQL
- Crea il profilo di connessione di origine.
Prepara e configura l'istanza di destinazione
Quando esegui la migrazione a un'istanza Cloud SQL esistente (ad esempio un'istanza di cui è stato eseguito il pre-provisioning da un altro team o gestita con Terraform), assicurati che l'istanza soddisfi tutti i prerequisiti di Database Migration Service prima di creare il job di migrazione:
- Idoneità dell'istanza e stato dei dati:
- L'istanza di destinazione deve essere un'istanza autonoma (non una replica) nello stato
RUNNABLE. - L'istanza deve risiedere nella stessa regione Google Cloud del job di migrazione e del profilo di connessione.
- L'istanza può essere associata a un solo job di migrazione attivo alla volta.
- L'istanza di destinazione non deve contenere dati utente, tabelle definite dall'utente o database non di sistema esistenti. La verifica del job di migrazione non va a buon fine se nell'istanza sono presenti dati utente esistenti. Per saperne di più, consulta Limiti per le migrazioni a istanze di destinazione esistenti. Se necessario, cancella i dati esistenti dall'istanza di destinazione.
- L'istanza di destinazione deve essere un'istanza autonoma (non una replica) nello stato
- Configurazione dei flag di database: attiva il flag
cloudsql.enable_pglogicalnell'istanza Cloud SQL per PostgreSQL di destinazione. Questo flag è obbligatorio per la replica logica. Per saperne di più sull'impostazione dei flag, consulta Configurazione dei flag di database. - Credenziali e autorizzazioni utente del database: assicurati che nell'istanza di destinazione esistano gli account utente amministrativi del database richiesti (ad esempio l'utente
postgrespredefinito o un utente di migrazione dedicato con il ruolocloudsqlsuperuser) per gestire database e ruoli. Puoi creare e gestire gli utenti del database utilizzando i comandipsqlstandard o tramite la console Google Cloud . Per saperne di più, consulta Gestisci gli utenti nella documentazione di Cloud SQL. - Requisiti di connettività di rete: verifica che il networking dell'istanza di destinazione sia configurato correttamente per comunicare con il database di origine in base al metodo di connettività scelto:
- Private Service Connect: se l'istanza di destinazione è abilitata per Private Service Connect, deve avere un collegamento di rete in uscita di Private Service Connect configurato. Consulta Connessioni in uscita di Private Service Connect nella documentazione di Cloud SQL.
- Peering Virtual Private Cloud (accesso privato ai servizi / IP privato): l'istanza di destinazione deve avere l'IP privato abilitato sulla rete Virtual Private Cloud che esegue il peering o il routing al database di origine. Consulta Configura l'IP privato.
- Lista consentita di IP pubblici: se utilizzi la connettività IP pubblica, assicurati di abilitare l'IP pubblico nell'istanza di destinazione e di inserire nella lista consentita gli indirizzi IP in uscita dell'istanza (inclusi gli IP in uscita primari e secondari se l'istanza è configurata per l'alta affidabilità) nel firewall di origine. Consulta Autorizza le reti per l'IP pubblico.
- Avviso di retrocessione dell'istanza:
- Per le migrazioni PostgreSQL standard, Database Migration Service retrocede l'istanza di destinazione autonoma esistente per configurarla come replica esterna del database di origine. Devi confermare questa retrocessione quando crei il job di migrazione nella console Google Cloud inserendo l'ID istanza di destinazione.
- La retrocessione dell'istanza non imposta il database Cloud SQL per PostgreSQL in modalità di sola lettura, ma devi evitare operazioni di scrittura su tabelle o database che partecipano alla migrazione per evitare conflitti di replica.
- I backup automatici, il recupero point-in-time (PITR) e la creazione di repliche di lettura Cloud SQL vengono sospesi finché non promuovi il job di migrazione. Per saperne di più, consulta Limitazioni per le migrazioni a istanze di destinazione esistenti.
- Se gestisci l'istanza di destinazione utilizzando l'infrastructure as code (ad esempio Terraform), Database Migration Service modifica le impostazioni di backup e ripristino durante la migrazione. Per indicazioni sulla gestione della deviazione della configurazione di Terraform, consulta Diagnostica i problemi.
Crea ed esegui il job di migrazione
Per configurare ed eseguire la migrazione, segui questi passaggi:
- (Facoltativo) Se vuoi gestire i tuoi certificati o le tue chiavi di crittografia per il job di migrazione, prepara le chiavi di crittografia necessarie.
-
Crea ed esegui il job di migrazione per un'istanza di destinazione esistente.
Puoi monitorare l'avanzamento della migrazione e l'integrità dell'istanza di destinazione con le funzionalità di osservabilità di Database Migration Service. Consulta le metriche dei job di migrazione.
Finalizza la migrazione
Quando decidi di passare l'applicazione alla nuova istanza Cloud SQL per PostgreSQL, finalizza la migrazione seguendo questi passaggi:
- Facoltativo: configura le repliche di lettura a cascata. Se vuoi utilizzare le repliche di lettura in cascata, puoi configurarle quando il job di migrazione entra nella fase CDC.
- Interrompi tutte le operazioni di scrittura sul database di origine. Puoi impostarli in modalità di sola lettura per mantenere la funzionalità operativa.
- Promuovi il job di migrazione.
- (Facoltativo) Verifica la completezza dei dati della migrazione.
- Se gestisci il database di destinazione utilizzando l'infrastructure as code (ad esempio Terraform), applica nuovamente la configurazione dopo la promozione per riconciliare le impostazioni modificate da Database Migration Service durante la migrazione.
Passaggi successivi
Scopri di più sulle funzionalità di Google Cloud per Cloud SQL per PostgreSQL. Consulta le funzionalità di Cloud SQL per PostgreSQL.