Esegui la migrazione a un'istanza di destinazione esistente

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:

  1. Configura il database di origine per consentire a Database Migration Service di spostare i dati nei nuovi database.
  2. Configura la connettività di rete all'istanza PostgreSQL di origine.
  3. Prepara e configura l'istanza Cloud SQL di destinazione esistente.
  4. Crea il profilo di connessione di origine e il job di migrazione.
  5. Avvia e monitora il job di migrazione.
  6. 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:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.

Prima di iniziare

  1. Verifica se questo percorso di migrazione può supportare completamente il tuo scenario. Consulta le seguenti pagine:
  2. 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.
  3. Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .

    Vai al selettore di progetti

  4. Abilita le API Database Migration Service e Cloud SQL Admin.

    Abilita le API

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:

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.create
  • cloudsql.instances.get
  • cloudsql.instances.list
  • cloudsql.instances.update
  • cloudsql.instances.delete
  • cloudsql.operations.get
  • cloudsql.users.list
  • cloudsql.users.get
  • cloudsql.users.create
  • cloudsql.users.update
  • cloudsql.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:

  1. Scegli e configura il metodo di connettività di rete di origine.
  2. Configura l'istanza del database di origine. In linea generale, questo include i seguenti passaggi:
    1. 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.
    2. Configura i parametri PostgreSQL: imposta wal_level = logical e assicurati che i valori di max_replication_slots, max_wal_senders e max_worker_processes siano adeguati.
    3. Concedi i privilegi di replica all'utente della migrazione e configura pg_hba.conf per consentire le connessioni dall'istanza Cloud SQL di destinazione.

    Per istruzioni dettagliate, consulta Configura il database di origine.

  3. 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:

  1. 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.
  2. Configurazione dei flag di database: attiva il flag cloudsql.enable_pglogical nell'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.
  3. Credenziali e autorizzazioni utente del database: assicurati che nell'istanza di destinazione esistano gli account utente amministrativi del database richiesti (ad esempio l'utente postgres predefinito o un utente di migrazione dedicato con il ruolo cloudsqlsuperuser) per gestire database e ruoli. Puoi creare e gestire gli utenti del database utilizzando i comandi psql standard o tramite la console Google Cloud . Per saperne di più, consulta Gestisci gli utenti nella documentazione di Cloud SQL.
  4. 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.
  5. 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:

  1. (Facoltativo) Se vuoi gestire i tuoi certificati o le tue chiavi di crittografia per il job di migrazione, prepara le chiavi di crittografia necessarie.
  2. 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:

  1. 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.
  2. Interrompi tutte le operazioni di scrittura sul database di origine. Puoi impostarli in modalità di sola lettura per mantenere la funzionalità operativa.
  3. Promuovi il job di migrazione.
  4. (Facoltativo) Verifica la completezza dei dati della migrazione.
  5. 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.