Crea un job di migrazione in un nuovo cluster di destinazione

Quando crei il cluster AlloyDB per PostgreSQL di destinazione con Database Migration Service, viene eseguito il provisioning di un cluster AlloyDB per PostgreSQL con un'istanza principale. L'esecuzione di determinate operazioni durante il processo di migrazione potrebbe causare errori di migrazione. Durante la migrazione a un nuovo cluster di destinazione, tieni presente le seguenti considerazioni operative:

  • Evita le operazioni di scrittura sui dati in fase di migrazione: non eseguire operazioni di scrittura (come INSERT, UPDATE, DELETE o modifiche dello schema DDL) nel cluster di destinazione su tabelle o database inclusi nella migrazione. Queste operazioni potrebbero causare conflitti di replica con i dati provenienti dall'origine.
  • Gestisci gli utenti del database: puoi creare e gestire gli utenti del database in qualsiasi momento utilizzando i comandi psql standard o tramite AlloyDB per PostgreSQL nella console Google Cloud . Per saperne di più, consulta Gestisci gli utenti del database nella documentazione di AlloyDB per PostgreSQL.

Per saperne di più, consulta Limitazioni note.

La creazione di un job di migrazione include:

  1. Definizione delle impostazioni per il job di migrazione.
  2. Specifica le informazioni sul profilo di connessione che hai creato per il database di origine (profilo di connessione di origine).
  3. Definizione delle impostazioni per il cluster AlloyDB per PostgreSQL di destinazione e creazione del cluster.
  4. Configurazione della connettività tra gli ambienti di database di origine e di destinazione.
  5. Test del job di migrazione per assicurarti che le informazioni di connessione fornite per il job siano valide.

Per creare un job di migrazione in un nuovo cluster di destinazione, segui questi passaggi:

Console

Definisci le impostazioni per il job di migrazione

  1. Nella console Google Cloud , vai alla pagina Job di migrazione.

    Vai a Job di migrazione

  2. Fai clic su Crea job di migrazione.

    Viene visualizzata la pagina della configurazione guidata del job di migrazione. Questa procedura guidata contiene più riquadri che ti guidano attraverso ogni passaggio della configurazione.

    Puoi mettere in pausa la creazione di un job di migrazione in qualsiasi momento facendo clic su Salva ed esci. Tutti i dati inseriti fino a quel momento vengono salvati in una bozza di job di migrazione. Puoi completare la bozza del job di migrazione in un secondo momento.

  3. Nella pagina Inizia, inserisci le seguenti informazioni:
    1. Nome job di migrazione

      Questo è un nome leggibile per il job di migrazione. Questo valore viene visualizzato nella console Google Cloud .

    2. ID job di migrazione

      Si tratta di un identificatore leggibile da macchina per il job di migrazione. Utilizza questo valore per lavorare con i job di migrazione utilizzando i comandi o l'API di Google Cloud CLI di Database Migration Service.

    3. Nell'elenco Motore del database di origine, seleziona PostgreSQL.
    4. Dall'elenco Motore del database di destinazione, seleziona AlloyDB per PostgreSQL.
    5. Seleziona la regione in cui salvi il job di migrazione.

      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) devono essere salvate in un'unica regione. Seleziona la regione in base alla località dei servizi che richiedono i tuoi dati, ad esempio istanze di Compute Engine o app di App Engine e altri servizi. Dopo aver scelto la regione di destinazione, questa selezione non può essere modificata.

    6. Specifica il tipo di prestazione di migrazione: Continuo (snapshot + modifiche in corso). Le migrazioni omogenee di AlloyDB per PostgreSQL supportano esclusivamente le migrazioni continue.
    7. Esamina i prerequisiti generati per il tuo ambiente. Assicurati che il database di origine sia configurato correttamente. Per saperne di più, consulta Configura il database di origine.
  4. Fai clic su Salva e continua.

Specifica le informazioni sul profilo di connessione di origine

Nella pagina Definisci un'origine, segui questi passaggi:

  1. Dal menu a discesa Profilo di connessione di origine, seleziona il profilo di connessione per il database di origine (o fai clic su Crea un profilo di connessione; consulta Crea un profilo di connessione di origine).
  2. Nella sezione Personalizza configurazioni di parallelismo, fai clic su Mostra configurazioni di parallelismo.

    Durante il dump completo iniziale, l'estensione pglogical replica i dati a livello di tabella e non suddivide una singola tabella non partizionata, una partizione foglia o una tabella senza chiave primaria tra più sottoscrizioni. Ciò significa che il parallelismo del dump dei dati migliorato non può aumentare la velocità del dump iniziale per una singola tabella di grandi dimensioni non partizionata, perché la tabella viene copiata all'interno di una sottoscrizione. Per saperne di più, consulta Considerazioni sul parallelismo del dump dei dati.

    La velocità del parallelismo del dump dei dati è correlata alla quantità di carico indotta sul database di origine:

    • Ottimale (consigliato): prestazioni bilanciate con un carico ottimale sul database di origine. Database Migration Service crea fino a 2 sottoscrizioni per database (fino a 2 in totale per tutti i database, con almeno 1 sottoscrizione per database migrato).
    • Massima: offre le velocità di dump più elevate, ma potrebbe causare un aumento del carico sul database di origine. Database Migration Service crea fino a 4 sottoscrizioni per database (fino a 4 in totale per tutti i database, con almeno 1 sottoscrizione per database migrato).
    • Minimo: utilizza la quantità minima di risorse di calcolo sul database di origine, ma potrebbe avere un throughput di dump più lento. Database Migration Service crea una sottoscrizione per database.

    Se scegli impostazioni di parallelismo del dump dei dati modificate, assicurati di aumentare i parametri max_replication_slots, max_wal_senders e max_worker_processes nel database di origine.

  3. Fai clic su Salva e continua.

Configura e crea il cluster AlloyDB per PostgreSQL di destinazione

Ora creerai un nuovo cluster AlloyDB per PostgreSQL di destinazione per il job di migrazione. I cluster sono le risorse di primo livello in AlloyDB per PostgreSQL. Contengono una singola istanza principale per l'accesso in lettura e scrittura al database che crei durante il processo di migrazione.

  1. Nella pagina Definisci una destinazione, dal menu a discesa Tipo di istanza di destinazione, seleziona Nuovo cluster.
  2. Scegli un tipo di cluster. Database Migration Service supporta i cluster AlloyDB per PostgreSQL ad alta affidabilità, che possono fornire dati da più zone in una regione, senza pool di lettura durante il provisioning iniziale.
  3. Fai clic su Continua.
  4. Configura il cluster:
    1. Nel campo ID cluster, inserisci un identificatore per il cluster AlloyDB per PostgreSQL o utilizza l'identificatore generato automaticamente.

      Non includere informazioni sensibili o che consentono l'identificazione personale nell'identificatore. Non è necessario includere l'ID progetto nel nome del cluster. Questa operazione viene eseguita automaticamente, ove opportuno.

    2. Nel campo Password, fornisci una password alfanumerica per il cluster AlloyDB per PostgreSQL di destinazione. Questa è la password per l'account amministratore postgres nel cluster.

      Puoi inserire la password manualmente o fare clic su Genera per consentire a Database Migration Service di crearne una automaticamente.

    3. Dal menu a discesa Versione database, scegli la versione del database per il cluster di destinazione.

      Scopri di più sul supporto della migrazione tra versioni.

    4. Nel campo Rete:
      1. Seleziona un percorso di rete per definire le risorse disponibili durante l'impostazione della connettività di migrazione. I cluster sono configurati con un percorso di rete IP privato. Se prevedi di connetterti al database di origine con il peering VPC, seleziona il VPC in cui si trova.
      2. Se la tua rete non è configurata per l'accesso privato ai servizi, fai clic su Configura connessione e segui la configurazione guidata della connessione.
      3. Se non è mai stata configurata una rete di servizi gestiti per il VPC selezionato, puoi scegliere di selezionare un intervallo IP e fare clic su Connetti o utilizzare un intervallo IP selezionato automaticamente e fare clic su Alloca e connetti.
    5. (Facoltativo) Configura le opzioni di crittografia dei dati per il cluster di destinazione.

      Espandi questa sezione per visualizzare i passaggi facoltativi.

      Fai clic su Mostra opzioni avanzate per specificare se vuoi gestire la crittografia dei dati di cui viene eseguita la migrazione dall'origine alla destinazione. Per impostazione predefinita, i dati sono criptati con una chiave gestita da Google Cloud.

      Se vuoi gestire la tua crittografia, puoi utilizzare una chiave di crittografia gestita dal cliente (CMEK). La chiave deve trovarsi nella stessa località del cluster AlloyDB per PostgreSQL. Ad esempio, i cluster situati in us-west1 possono utilizzare solo chiavi in us-west1.

      1. Seleziona il pulsante di opzione Utilizza una chiave di crittografia gestita dal cliente (CMEK).
      2. Dal menu Seleziona una chiave gestita dal cliente, seleziona la CMEK.

      Se non vedi la tua chiave, fai clic su Inserisci il nome risorsa della chiave per fornire il nome risorsa della chiave che vuoi utilizzare. Ad esempio, inserisci projects/my-project-name/locations/my-location/keyRings/my-keyring/cryptoKeys/my-key nel campo Nome risorsa della chiave e poi fai clic su Salva.

    6. Fai clic su Continua.
  5. Configura l'istanza principale. Un'istanza principale determina la capacità di calcolo di un cluster e supporta le operazioni di lettura e scrittura:
    1. Nel campo ID istanza, inserisci un ID per l'istanza principale.
    2. Seleziona un tipo di macchina per l'istanza principale.
    3. Se prevedi di utilizzare il metodo di connettività Lista consentita IP, seleziona la casella di controllo Abilita IP pubblico in uscita.
    4. (Facoltativo) Configura i flag di database per l'istanza principale.

      Espandi questa sezione per visualizzare i passaggi facoltativi.

      Fai clic su Mostra opzioni avanzate per impostare i flag di database per l'istanza principale. Per informazioni sui flag supportati, consulta Configura i flag di database nella documentazione di AlloyDB per PostgreSQL. Per ogni flag:

      1. Fai clic su Aggiungi flag.
      2. Seleziona un flag dall'elenco Nuovo flag di database.
      3. Specifica un valore per il flag.
      4. Fai clic su Fine.
  6. Fai clic su Salva e continua, poi conferma la scelta facendo clic su Crea destinazione e continua. Database Migration Service crea il cluster AlloyDB per PostgreSQL di destinazione e la relativa istanza principale. Questa procedura può richiedere alcuni minuti.

Configura la connettività tra l'istanza del database di origine e il cluster di destinazione

Dal menu a discesa Metodo di connettività, seleziona un metodo di connettività di rete. Questo metodo definisce il modo in cui il cluster AlloyDB per PostgreSQL di destinazione si connette al database di origine. I metodi di connettività di rete attuali per la migrazione a un nuovo cluster includono lista consentita di IP, peering VPC, tunnel SSH inverso e proxy TCP tramite una VM ospitata nel cloud.

Se vuoi utilizzare…Devi…
Il metodo di connettività di rete con lista consentita IP, Copia entrambi gli indirizzi IP pubblici in uscita dell'istanza principale del cluster di destinazione e utilizzali per configurare il firewall di rete per il server di database di origine e nel file pg_hba.conf.
Il metodo di connessione di rete tramite tunnel SSH inverso, Seleziona l'istanza VM di Compute Engine che ospiterà il tunnel.

Dopo aver specificato l'istanza, Google fornisce uno script che esegue i passaggi per configurare il tunnel tra i database di origine e di destinazione. Esegui lo script in Google Cloud CLI da una macchina che dispone della connettività sia al database di origine sia a Google Cloud.

Il metodo di connettività di rete con peering VPC, Seleziona la rete VPC in cui si trova il database di origine. Il cluster di destinazione si connette a questa rete utilizzando l'accesso privato ai servizi.
Il metodo di connettività tramite proxy TCP mediante una VM ospitata nel cloud, Inserisci i dettagli richiesti per la nuova istanza VM di Compute Engine che ospiterà il proxy TCP.

Dopo aver specificato i dettagli, la console Google Cloud fornisce uno script che configura il proxy tra i database di origine e di destinazione. Esegui lo script su una macchina con Google Cloud CLI aggiornato.

Dopo aver eseguito lo script, inserisci l'indirizzo IP privato della VM appena creata e fai clic su Configura e continua.

Dopo aver selezionato e configurato la connettività di rete, fai clic su Configura e continua.

Configura database di migrazione

Puoi eseguire la migrazione di tutti i database dall'istanza di origine o scegliere solo database specifici.

  1. Nell'elenco Database da migrare, seleziona una delle seguenti opzioni:
    • Tutti i database: seleziona tutti i database presenti nell'origine.
    • Database specifici: consente di selezionare database specifici tra tutti i database esistenti nell'origine.
  2. Se vuoi eseguire la migrazione di database specifici, filtra l'elenco visualizzato e seleziona i database di cui vuoi che Database Migration Service esegua la migrazione nella destinazione.

    Se l'elenco non viene visualizzato e viene mostrato un errore di rilevamento del database, fai clic su Ricarica. Se il rilevamento del database non va a buon fine, il job esegue la migrazione di tutti i database. Puoi continuare con la creazione di un job di migrazione e correggere gli errori di connettività in un secondo momento.

  3. Fai clic su Salva e continua.

Testa, crea ed esegui il job di migrazione

In questo passaggio finale, esamina il riepilogo delle impostazioni del job di migrazione, dell'origine, della destinazione e del metodo di connettività, quindi verifica la validità della configurazione del job di migrazione. Se si verificano problemi, puoi modificare le impostazioni del job di migrazione.

  1. Nella pagina Testa e crea un job di migrazione, fai clic su Testa il job.

    Se il test non va a buon fine, risolvi il problema nella parte appropriata del flusso e ripeti il test. Per informazioni sulla risoluzione dei problemi relativi a un test di job di migrazione non riuscito, consulta Diagnostica i problemi di AlloyDB per PostgreSQL.

  2. Al termine del test del job di migrazione, fai clic su Crea e avvia job per creare il job di migrazione e avviarlo immediatamente oppure fai clic su Crea job per creare il job di migrazione senza avviarlo immediatamente.

    Se il job non viene avviato al momento della creazione, può essere avviato dalla pagina Job di migrazione facendo clic su Avvia. Indipendentemente da quando inizia il job di migrazione, alla tua organizzazione viene addebitato un costo per l'esistenza del cluster di destinazione.

    Quando avvii il job di migrazione, Database Migration Service inizia il dump completo iniziale e la replica continua. Per ulteriori informazioni, vedi Limitazioni note.

  3. Vai a Esamina il job di migrazione.

Google Cloud CLI

  1. Crea il profilo di connessione di destinazione.
    Quando esegui la migrazione a un nuovo cluster di destinazione con Google Cloud CLI, crei il cluster di destinazione e il profilo di connessione in un'unica azione.
    Esegui questo comando (fai clic sul link per espandere):

    gcloud database-migration connection-profiles create alloydb

    Questo esempio utilizza il flag facoltativo --no-async in modo che tutte le operazioni vengano eseguite in modo sincrono. Ciò significa che il completamento di alcuni comandi potrebbe richiedere un po' di tempo. Puoi saltare il flag --no-async per eseguire i comandi in modo asincrono. In questo caso, devi utilizzare il comando gcloud database-migration operations describe per verificare se l'operazione è andata a buon fine.

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • DEST_CONN_ID con l'identificatore del profilo di connessione di destinazione.
    • REGION con la regione in cui vuoi salvare il profilo di connessione e creare il cluster di destinazione.
    • DEST_PASSWORD con la password iniziale dell'utente postgres nel cluster AlloyDB per PostgreSQL di destinazione.
    • PRIMARY_ID con l'ID dell'istanza principale nel cluster AlloyDB per PostgreSQL di destinazione.
    • CPU_COUNT con il numero di vCPU per l'istanza principale (ad esempio 2, 4, 8).
    • VPC_NETWORK con il nome o l'URI completo della risorsa della rete Virtual Private Cloud configurata per l'accesso privato ai servizi.
    • (Facoltativo) Per configurare impostazioni aggiuntive per il nuovo cluster AlloyDB per PostgreSQL e l'istanza principale di destinazione, puoi passare i seguenti flag:
      • --enable-outbound-public-ip: abilita l'IP pubblico in uscita sull'istanza principale (obbligatorio se utilizzi la connettività con lista consentita IP).
      • --kms-key, --kms-keyring e --kms-project: cripta il cluster di destinazione con una chiave di crittografia gestita dal cliente (CMEK).
      • --database-version: specifica la versione principale di PostgreSQL per il cluster di destinazione (ad esempio, POSTGRES_15).
      • --database-flags: specifica un elenco separato da virgole di flag di database (KEY=VALUE) per l'istanza principale di destinazione.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration connection-profiles create alloydb DEST_CONN_ID \
      --region=REGION \
      --password=DEST_PASSWORD \
      --primary-id=PRIMARY_ID \
      --cpu-count=CPU_COUNT \
      --network=VPC_NETWORK \
      --no-async

    Windows (PowerShell)

    gcloud database-migration connection-profiles create alloydb DEST_CONN_ID `
      --region=REGION `
      --password=DEST_PASSWORD `
      --primary-id=PRIMARY_ID `
      --cpu-count=CPU_COUNT `
      --network=VPC_NETWORK `
      --no-async

    Windows (cmd.exe)

    gcloud database-migration connection-profiles create alloydb DEST_CONN_ID ^
      --region=REGION ^
      --password=DEST_PASSWORD ^
      --primary-id=PRIMARY_ID ^
      --cpu-count=CPU_COUNT ^
      --network=VPC_NETWORK ^
      --no-async

    Dovresti ricevere una risposta simile alla seguente:

    Waiting for connection profile [DEST_CONN_ID]
    to be created with [OPERATION_ID]
    
    Waiting for operation [OPERATION_ID] to complete...done.
    
    Created connection profile DEST_CONN_ID [OPERATION_ID]
    
  2. Crea il job di migrazione.
    Se utilizzi la connettività tramite lista consentita di IP, peering VPC o tunnel SSH inverso, assicurati di aggiungere i flag richiesti, ad esempio --static-ip, --peer-vpc o --vm, --vm-ip, --vm-port e --vpc. Per saperne di più, consulta Configura la connettività ed Esempi di Google Cloud CLI.
    Esegui il comando seguente (fai clic sul link per espandere):

    gcloud database-migration migration-jobs create

    Questo esempio utilizza il flag facoltativo --no-async in modo che tutte le operazioni vengano eseguite in modo sincrono. Ciò significa che il completamento di alcuni comandi potrebbe richiedere un po' di tempo. Puoi saltare il flag --no-async per eseguire i comandi in modo asincrono. In questo caso, devi utilizzare il comando gcloud database-migration operations describe per verificare se l'operazione è andata a buon fine.

    Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

    • MIGRATION_JOB_ID con un identificatore leggibile da macchina per il job di migrazione. Utilizza questo valore per lavorare con i job di migrazione utilizzando i comandi o l'API di Google Cloud CLI di Database Migration Service.
    • REGION con l'identificatore della regione in cui vuoi salvare il job di migrazione.
    • MIGRATION_JOB_NAME con un nome leggibile per il job di migrazione. Questo valore viene visualizzato in Database Migration Service nella console Google Cloud .
    • SOURCE_CONNECTION_PROFILE_ID con un identificatore leggibile da macchina del profilo di connessione di origine. Per saperne di più, consulta Crea un profilo di connessione di origine.
    • DESTINATION_CONNECTION_PROFILE_ID con un identificatore leggibile da macchina del profilo di connessione di destinazione.
    • (Facoltativo) Per impostazione predefinita, Database Migration Service esegue la migrazione di tutti i database nell'origine. Se vuoi eseguire la migrazione solo di database specifici, utilizza il flag --databases-filter e specifica i relativi identificatori come elenco separato da virgole.

      Ad esempio: --databases-filter=my-business-database,my-other-database

      In un secondo momento, puoi modificare i job di migrazione creati con il flag --databases-filter utilizzando il comando gcloud database-migration migration-jobs update.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration migration-jobs \
    create MIGRATION_JOB_ID \
      --no-async \
      --region=REGION \
      --display-name=MIGRATION_JOB_NAME \
      --source=SOURCE_CONNECTION_PROFILE_ID \
      --destination=DESTINATION_CONNECTION_PROFILE_ID \
      --type=CONTINUOUS

    Windows (PowerShell)

    gcloud database-migration migration-jobs `
    create MIGRATION_JOB_ID `
      --no-async `
      --region=REGION `
      --display-name=MIGRATION_JOB_NAME `
      --source=SOURCE_CONNECTION_PROFILE_ID `
      --destination=DESTINATION_CONNECTION_PROFILE_ID `
      --type=CONTINUOUS

    Windows (cmd.exe)

    gcloud database-migration migration-jobs ^
    create MIGRATION_JOB_ID ^
      --no-async ^
      --region=REGION ^
      --display-name=MIGRATION_JOB_NAME ^
      --source=SOURCE_CONNECTION_PROFILE_ID ^
      --destination=DESTINATION_CONNECTION_PROFILE_ID ^
      --type=CONTINUOUS

    Dovresti ricevere una risposta simile alla seguente:

    Waiting for migration job [MIGRATION_JOB_ID]
    to be created with [OPERATION_ID]
    
    Waiting for operation [OPERATION_ID] to complete...done.
    
    Created migration job MIGRATION_JOB_ID [OPERATION_ID]