Utilizzare le migrazioni rapide per eseguire la migrazione ad AlloyDB per PostgreSQL


Questa pagina descrive come eseguire migrazioni continue rapide per migrazioni PostgreSQL omogenee ad AlloyDB per PostgreSQL.

Panoramica

Le migrazioni rapide sono un flusso di migrazione continua leggero per scenari PostgreSQL omogenei. Con le migrazioni di avvio rapido, Database Migration Service può configurare automaticamente le risorse di rete e migrazione principali di cui hai bisogno: collegamenti di rete, subnet, configurazioni di connettività privata con interfacce Private Service Connect, profili di connessione e job di migrazione continua.

Con le migrazioni con avvio rapido, puoi spostare i dati in un cluster AlloyDB per PostgreSQL esistente o crearne uno nuovo durante la configurazione della migrazione. Le migrazioni rapide sono più adatte per:

  • Migrazioni di base in cui non sono necessarie impostazioni di parallelismo del dump dei dati personalizzate.
  • Migrazione del database da un progetto Google Cloud a un altro. Quando configuri una migrazione rapida, puoi creare il cluster di destinazione in un progetto diverso da quello di origine e impostare Database Migration Service in modo che crei il collegamento di rete e la subnet nella rete Virtual Private Cloud (VPC) di un altro progetto.
  • Migrazione da origini con un indirizzo IP privato nella tua rete Virtual Private Cloud (VPC) Google Cloud, ad esempio database autogestiti su Compute Engine o istanze Cloud SQL per PostgreSQL abilitate per il networking privato.

    Le origini ospitate al di fuori di Google Cloud potrebbero richiedere componenti di rete aggiuntivi (ad esempio una connessione Cloud VPN) per poter essere raggiunte con un indirizzo IP privato all'interno della tua rete VPC.

  • Al database di origine deve essere assegnato un indirizzo IP privato nella tua rete VPC. Database Migration Service si connette al database di origine utilizzando le interfacce Private Service Connect (collegamenti di rete). La connettività IP pubblico non è supportata per le migrazioni rapide.

Per scoprire di più sulle migrazioni rapide, consulta la panoramica delle migrazioni rapide nella documentazione principale di Database Migration Service.

Prima di iniziare

  1. Verifica se le migrazioni rapide possono supportare completamente il tuo scenario. Consulta Limitazioni della migrazione rapida.
  2. Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud .

    Vai al selettore di progetti

  3. Abilita le API Database Migration Service, Compute Engine, Network Connectivity Center e AlloyDB per PostgreSQL.

    Abilita le API

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per eseguire migrazioni rapide ad AlloyDB per PostgreSQL con Database Migration Service, chiedi all'amministratore di concedere i ruoli Identity and Access Management (IAM) richiesti per gli account coinvolti nella migrazione nei progetti pertinenti. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso nella documentazione di IAM.

Ruoli e autorizzazioni nel progetto di origine

Concedi i seguenti ruoli ad account specifici nel progetto Google Cloud in cui si trova il database di origine:

  • Per l'account utente che esegue la migrazione: Ruolo Compute Network Admin (roles/compute.networkAdmin)
  • Per il account di servizio Database Migration Service del progetto di destinazione: Compute Network Viewer (roles/compute.networkViewer)

    Il account di servizio di Database Migration Service viene creato quando abiliti l'API Database Migration Service. L'indirizzo email associato a questo account viene generato automaticamente e non può essere modificato. Questo indirizzo email utilizza il seguente formato:

    service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per configurare la connettività nel progetto di database di origine nell'ambito di una migrazione rapida con Database Migration Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie (origine):

Autorizzazioni richieste (origine)

Per eseguire migrazioni rapide omogenee con Database Migration Service sono necessarie le seguenti autorizzazioni:

Per l'account utente che esegue la migrazione:

  • compute.networks.*
  • compute.subnetworks.*
  • compute.networkAttachments.*
  • networkconnectivity.internalRanges.create
  • networkconnectivity.internalRanges.get
  • networkconnectivity.operations.get

Per l'account di servizio Database Migration Service del progetto di destinazione:

  • compute.networkAttachments.get

Ruoli e autorizzazioni nel progetto di destinazione

Concedi i seguenti ruoli all'account utente che esegue la migrazione nel progetto Google Cloud in cui si trova il database di destinazione:

Questi ruoli predefiniti contengono le autorizzazioni necessarie per configurare i componenti di migrazione richiesti nel progetto del database di destinazione nell'ambito di una migrazione rapida con Database Migration Service. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie (destinazione):

Autorizzazioni richieste (destinazione)

Per eseguire migrazioni rapide omogenee con Database Migration Service sono necessarie le seguenti autorizzazioni:

  • datamigration.*
  • alloydb.clusters.create
  • alloydb.clusters.get
  • alloydb.clusters.list
  • alloydb.clusters.update
  • alloydb.clusters.delete
  • alloydb.instances.create
  • alloydb.instances.get
  • alloydb.instances.list
  • alloydb.instances.update
  • alloydb.instances.delete
  • alloydb.instances.executeSql
  • alloydb.operations.get
  • alloydb.users.list
  • alloydb.users.get
  • alloydb.users.create
  • alloydb.users.update
  • alloydb.users.delete

Configurazione del database di origine

Per configurare il database PostgreSQL di origine, segui questi passaggi:

  1. Crea un account utente dedicato per la migrazione nell'istanza.
    • Per le origini Cloud SQL per PostgreSQL, consulta Crea un utente nella documentazione di Cloud SQL.
    • Per altre origini, consulta la documentazione del provider del database o crea e gestisci gli utenti nella documentazione di PostgreSQL.
  2. Assegna i privilegi necessari all'account utente dedicato per la migrazione. Esegui questi comandi per ogni database di cui vuoi eseguire la migrazione:
    -- Grant the REPLICATION attribute
    ALTER ROLE MIGRATION_USER REPLICATION;
    
    -- Grant database-level permissions.
    -- Repeat for each database you want to migrate.
    GRANT CONNECT, CREATE ON DATABASE DATABASE_NAME TO MIGRATION_USER;
    
    -- Grant schema-level usage.
    -- Repeat for each schema in each database you want to migrate.
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO MIGRATION_USER;

    Sostituisci quanto segue:

    • MIGRATION_USER con il nome dell'account utente di migrazione.
    • DATABASE_NAME con il nome del database di cui vuoi eseguire la migrazione.
    • SCHEMA_NAME con il nome dello schema nel database di cui vuoi eseguire la migrazione.
  3. L'account utente di migrazione deve disporre dell'accesso di proprietà alle tabelle di cui esegui la migrazione. Per concedere questo livello di accesso, esegui una delle seguenti operazioni:
    • Solo per origini diverse da Cloud SQL per PostgreSQL: assegna il ruolo PostgreSQL SUPERUSER all'account di migrazione.
    • Per tutte le origini: aggiungi l'account utente di migrazione al gruppo di utenti proprietario delle tabelle. Esegui questo comando:
      -- Grant table ownership.
      GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;

      Sostituisci quanto segue:

      • TABLE_OWNER_GROUP_NAME con il nome del gruppo di utenti proprietario di ogni tabella di cui vuoi eseguire la migrazione.
      • MIGRATION_USER con il nome dell'account utente di migrazione.
  4. Per le tabelle senza chiavi primarie: Database Migration Service non replica le operazioni UPDATE o DELETE per le tabelle senza chiavi primarie durante la fase Change Data Capture (CDC). Se vuoi includere queste operazioni nella replica, modifica le tabelle senza chiavi primarie con REPLICA IDENTITY:
    ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL;
    ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;

    Sostituisci quanto segue:

    • TABLE_NAME è il nome della tabella che non ha chiavi primarie.
    • INDEX_NAME è l'indice univoco che può monitorare le righe delle tabelle senza chiavi primarie.
  5. Configura le impostazioni di replica utilizzando i flag di database.

    Origini autogestite

    Il salvataggio delle modifiche ai flag di database richiede il riavvio completo del database. I seguenti esempi utilizzano query SQL per modificare i valori dei flag. Se non puoi eseguire query SQL direttamente, consulta la documentazione del provider per i passaggi relativi alla modifica di questi flag.

    1. Imposta il parametro wal_level su logical. Esegui questo comando:
      ALTER SYSTEM SET wal_level = 'logical';
    2. Imposta il parametro wal_sender_timeout su 0. Questo valore disattiva il meccanismo di timeout utilizzato per terminare le connessioni di replica inattive. Esegui questo comando:
      ALTER SYSTEM SET wal_sender_timeout = 0;
    3. Configura il numero massimo di slot di replica con il parametro max_replication_slots. Questo parametro deve essere impostato almeno sul numero di database di cui stai eseguendo la migrazione per job di migrazione, più alcune riserve per la sincronizzazione delle tabelle.

      Ad esempio, se esegui la migrazione di 5 database e sono stati creati 2 job di migrazione per l'istanza di origine, il numero di slot di replica deve essere almeno 5 * 2 = 10, più il numero di slot di replica già utilizzati da te.

      Per impostare questo parametro, esegui questo comando:

      ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
      Dove NUMBER_OF_SLOTS rappresenta il numero massimo di slot di replica.
    4. Configura il parametro max_wal_senders almeno con lo stesso valore di max_replication_slots, più il numero di mittenti già utilizzati nell'istanza.

      Ad esempio, se il parametro max_replication_slots è impostato su 10 e stai già utilizzando 2 mittenti, il numero di processi di invio WAL in esecuzione contemporaneamente sarà 10 + 2 = 12.

      Per impostare questo parametro, esegui questo comando:

      ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
      Dove NUMBER_OF_SENDERS rappresenta il numero di processi del mittente WAL in esecuzione contemporaneamente.
    5. Imposta max_worker_processes su un valore almeno pari al numero di database di cui vuoi eseguire la migrazione, più il numero di max_worker_processes già utilizzati nell'istanza. Per impostare questo parametro, esegui questo comando:
      ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
      Dove NUMBER_OF_PROCESSES rappresenta il numero di database di cui verrà eseguita la migrazione.

    Origini Cloud SQL per PostgreSQL

    Per le origini Cloud SQL, configura i flag di database nella console Google Cloud . Devi riavviare l'istanza dopo aver modificato i flag di database affinché l'impostazione venga applicata. Per ulteriori informazioni sull'impostazione dei flag di database in Cloud SQL, consulta Configura i flag di database nella documentazione di Cloud SQL.

    1. Imposta il flag cloudsql.logical_decoding su on. L'abilitazione di questo flag richiede il riavvio dell'istanza affinché l'impostazione abbia effetto.
    2. Imposta il parametro wal_sender_timeout su 0. Questo valore disattiva il meccanismo di timeout utilizzato per terminare le connessioni di replica inattive.
    3. Configura il numero massimo di slot di replica con il parametro max_replication_slots. Questo parametro deve essere impostato almeno sul numero di database di cui stai eseguendo la migrazione per job di migrazione, più alcune riserve per la sincronizzazione delle tabelle.

      Ad esempio, se esegui la migrazione di 5 database e sono stati creati 2 job di migrazione per l'istanza di origine, il numero di slot di replica deve essere almeno 5 * 2 = 10, più il numero di slot di replica già utilizzati da te.

    4. Configura il parametro max_wal_senders in modo che abbia almeno lo stesso valore di max_replication_slots, più il numero di mittenti già utilizzati nell'istanza.

      Ad esempio, se il parametro max_replication_slots è impostato su 10 e stai già utilizzando 2 mittenti, il numero di processi di invio WAL in esecuzione contemporaneamente sarà 10 + 2 = 12.

    5. Imposta il parametro max_worker_processes su un valore almeno pari al numero di database di cui vuoi eseguire la migrazione, più il numero di max_worker_processes già utilizzati nell'istanza.

Crea ed esegui una migrazione rapida

Per creare ed eseguire una migrazione di avvio rapido, puoi utilizzare la console Google Cloud o gcloud CLI.

Console

  1. Nella console Google Cloud , vai alla pagina Inizia.

    Vai a Inizia

  2. Nel menu Motore di origine, seleziona PostgreSQL.
  3. Nel menu Motore di destinazione, seleziona AlloyDB per PostgreSQL.

    Viene visualizzata la sezione Introduzione alla migrazione rapida di PostgreSQL.

  4. Nella sezione Introduzione alla migrazione rapida di PostgreSQL, fai clic su Avvia migrazione.

    Viene visualizzata la pagina Esegui la migrazione ad AlloyDB per PostgreSQL.

  5. Nella sezione Configura migrazione, segui questi passaggi:
    1. Dal menu Regione di destinazione, seleziona la regione del cluster AlloyDB per PostgreSQL di destinazione.
    2. Nella casella Prefisso di migrazione, inserisci una stringa facile da ricordare che verrà aggiunta ai nomi di tutte le entità di migrazione create per la migrazione rapida: profili di connessione, configurazione della connettività privata, collegamento di rete e relativa subnet e job di migrazione.
    3. Dal menu Tipo di configurazione, seleziona una delle seguenti opzioni:
      1. Configurazione di connettività esistente: seleziona questa opzione se hai già un collegamento di rete e una configurazione di connettività privata che utilizza il metodo delle interfacce Private Service Connect. Questa opzione è ideale se hai già utilizzato le migrazioni rapide e vuoi riutilizzare le stesse risorse di rete.
      2. Nuova configurazione della connettività: seleziona questa opzione per creare un nuovo collegamento di rete e la subnet del collegamento di rete nella rete VPC del database di origine. La configurazione di connettività privata verrà creata nello stesso progetto del cluster di destinazione.
    4. Fai clic su Continua.
  6. Nella sezione Connetti origine, segui questi passaggi:
    1. Inserisci un nome host o l'indirizzo IP privato del tuo database di origine. L'indirizzo del database di origine deve essere raggiungibile dalla rete VPC di origine.
    2. Inserisci la Porta utilizzata per accedere all'host. La porta PostgreSQL predefinita è 5432.
    3. Inserisci il nome utente e la password per l'account di migrazione dedicato nel database di origine.
    4. Dal menu Tipo di crittografia, seleziona una delle seguenti opzioni:
      • Nessuno: se il database di origine non richiede connessioni criptate con SSL/TLS.
      • Obbligatorio: se il database di origine richiede connessioni criptate con SSL/TLS. Questa opzione non richiede alcuna verifica del certificato.
    5. Nel menu Database da migrare, fai clic su Personalizza. Utilizza il riquadro laterale con il rilevamento dei database incorporato per selezionare solo i database di cui vuoi eseguire la migrazione ad AlloyDB per PostgreSQL.
    6. Fai clic su Continua.
  7. Nella sezione Configura destinazione, puoi creare un nuovo cluster di destinazione o selezionarne uno esistente:

    Nuovi cluster

    Se vuoi creare un nuovo cluster di destinazione, segui questi passaggi:

    1. Dal menu Tipo di istanza di destinazione, seleziona Nuovo cluster.

      Database Migration Service utilizza la configurazione predefinita di AlloyDB per PostgreSQL per un nuovo cluster. Fai clic su Personalizza per regolare le funzionalità del cluster, come il tipo di macchina, la disponibilità a livello di zona o le impostazioni di protezione dei dati. Per saperne di più sulla configurazione del cluster, consulta Crea un cluster e la relativa istanza principale nella documentazione di AlloyDB per PostgreSQL.

    2. Nel campo Password, inserisci una password per l'utente amministratore postgres predefinito. Database Migration Service si connette come questo utente per eseguire la migrazione dei dati.

    Cluster esistenti

    Puoi eseguire la migrazione dei database in un cluster già esistente. Assicurati che il cluster di destinazione sia abilitato per Private Service Connect, sia nello stato RUNNABLE e non applichi mTLS con i connettori AlloyDB. Segui questi passaggi:

    1. Dal menu Tipo di istanza di destinazione, seleziona Cluster esistente.
    2. Dal menu ID cluster esistente, seleziona l'identificatore del cluster.
  8. Fai clic su Avvia migrazione.

    Database Migration Service crea il job di migrazione continua e inizia a replicare i dati. Puoi monitorare l'avanzamento della migrazione e lo stato del cluster di destinazione in AlloyDB per PostgreSQL. Per saperne di più, consulta Visualizza i dettagli del cluster e dell'istanza nella documentazione di AlloyDB per PostgreSQL.

gcloud

Per creare ed eseguire una migrazione di avvio rapido utilizzando gcloud CLI, segui questi passaggi:

  1. Configura il collegamento di rete.
    Decidi se vuoi creare un nuovo collegamento di rete o riutilizzarne uno esistente. Devi disporre di un collegamento di rete nella rete in cui è possibile raggiungere l'indirizzo IP privato del database di origine.

    • Se vuoi creare un nuovo collegamento di rete, esegui il comando seguente (fai clic per espandere i dettagli completi):

      gcloud compute network-attachments create

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

      • NETWORK_ATTACHMENT con il nome del collegamento di rete da creare.
      • REGION con la regione del collegamento di rete.
      • DEST_PROJECT_ID con l'ID progetto del progetto di destinazione.
      • SOURCE_PROJECT_ID con l'ID progetto in cui si trova la rete di origine.

      Esegui questo comando:

      Linux, macOS o Cloud Shell

      gcloud compute network-attachments create NETWORK_ATTACHMENT \
        --region=REGION \
        --connection-preference=ACCEPT_MANUAL \
        --producer-accept-list=DEST_PROJECT_ID \
        --subnets=default \
        --project=SOURCE_PROJECT_ID

      Windows (PowerShell)

      gcloud compute network-attachments create NETWORK_ATTACHMENT `
        --region=REGION `
        --connection-preference=ACCEPT_MANUAL `
        --producer-accept-list=DEST_PROJECT_ID `
        --subnets=default `
        --project=SOURCE_PROJECT_ID

      Windows (cmd.exe)

      gcloud compute network-attachments create NETWORK_ATTACHMENT ^
        --region=REGION ^
        --connection-preference=ACCEPT_MANUAL ^
        --producer-accept-list=DEST_PROJECT_ID ^
        --subnets=default ^
        --project=SOURCE_PROJECT_ID
  2. Consenti al progetto tenant di Database Migration Service di accedere al collegamento di rete.
    Il collegamento di rete deve consentire le connessioni dal progetto tenant di Database Migration Service. Segui questi passaggi:

    1. Recupera l'ID progetto tenant di Database Migration Service eseguendo una creazione di connessione privata dry run (fai clic per espandere):

      gcloud database-migration private-connections create --validate-only

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

      • PRIVATE_CONN con il nome della risorsa di connessione privata.
      • REGION con la regione per la connessione privata.
      • NETWORK_ATTACHMENT_URI con l'URI del collegamento di rete.

      Esegui questo comando:

      Linux, macOS o Cloud Shell

      gcloud database-migration private-connections create PRIVATE_CONN \
        --region=REGION \
        --network-attachment=NETWORK_ATTACHMENT_URI \
        --display-name=PRIVATE_CONN \
        --format="value(metadata.metadata.tenant_project_id)" \
        --validate-only

      Windows (PowerShell)

      gcloud database-migration private-connections create PRIVATE_CONN `
        --region=REGION `
        --network-attachment=NETWORK_ATTACHMENT_URI `
        --display-name=PRIVATE_CONN `
        --format="value(metadata.metadata.tenant_project_id)" `
        --validate-only

      Windows (cmd.exe)

      gcloud database-migration private-connections create PRIVATE_CONN ^
        --region=REGION ^
        --network-attachment=NETWORK_ATTACHMENT_URI ^
        --display-name=PRIVATE_CONN ^
        --format="value(metadata.metadata.tenant_project_id)" ^
        --validate-only

      Salva l'ID progetto tenant restituito per utilizzarlo con i comandi successivi.

    2. Consenti al progetto tenant di Database Migration Service e al progetto di destinazione di connettersi al collegamento di rete (fai clic per espandere):

      gcloud compute network-attachments update

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

      • NETWORK_ATTACHMENT con il nome del collegamento di rete.
      • REGION con la regione.
      • DEST_PROJECT_ID con l'ID progetto del progetto di destinazione.
      • DMS_TENANT_ID con l'ID progetto tenant di Database Migration Service recuperato.
      • SOURCE_PROJECT_ID con l'ID progetto in cui si trova la rete di origine.

      Esegui questo comando:

      Linux, macOS o Cloud Shell

      gcloud compute network-attachments update NETWORK_ATTACHMENT \
        --region=REGION \
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID \
        --project=SOURCE_PROJECT_ID

      Windows (PowerShell)

      gcloud compute network-attachments update NETWORK_ATTACHMENT `
        --region=REGION `
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID `
        --project=SOURCE_PROJECT_ID

      Windows (cmd.exe)

      gcloud compute network-attachments update NETWORK_ATTACHMENT ^
        --region=REGION ^
        --producer-accept-list=DEST_PROJECT_ID,DMS_TENANT_ID ^
        --project=SOURCE_PROJECT_ID
  3. Crea una connessione privata.
    Crea una risorsa di connessione privata per consentire a Database Migration Service di connettersi alla tua rete di origine (fai clic per espandere):

    gcloud database-migration private-connections create

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

    • PRIVATE_CONN con il nome della risorsa di connessione privata.
    • REGION con la regione per la connessione privata.
    • NETWORK_ATTACHMENT_URI con l'URI del collegamento di rete.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration private-connections create PRIVATE_CONN \
      --region=REGION \
      --network-attachment=NETWORK_ATTACHMENT_URI \
      --display-name=PRIVATE_CONN

    Windows (PowerShell)

    gcloud database-migration private-connections create PRIVATE_CONN `
      --region=REGION `
      --network-attachment=NETWORK_ATTACHMENT_URI `
      --display-name=PRIVATE_CONN

    Windows (cmd.exe)

    gcloud database-migration private-connections create PRIVATE_CONN ^
      --region=REGION ^
      --network-attachment=NETWORK_ATTACHMENT_URI ^
      --display-name=PRIVATE_CONN
  4. Crea un profilo di connessione di origine.
    Esegui questo comando (fai clic per espandere):

    gcloud database-migration connection-profiles create postgresql

    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:

    • SOURCE_CONN_ID con l'identificatore del profilo di connessione di origine.
    • REGION con la regione in cui vuoi salvare il profilo di connessione.
    • SOURCE_PRIVATE_IP con l'indirizzo IP privato del database di origine.
    • SOURCE_PORT con la porta del database di origine (il valore predefinito è 5432).
    • SOURCE_USER con il nome utente dell'utente di migrazione nel database di origine.
    • SOURCE_PASSWORD con la password dell'utente di migrazione nel database di origine.
    • PRIVATE_CONN con il nome della risorsa di connessione privata.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration connection-profiles create postgresql \
      SOURCE_CONN_ID \
      --region=REGION \
      --role=SOURCE \
      --host=SOURCE_PRIVATE_IP \
      --port=SOURCE_PORT \
      --username=SOURCE_USER \
      --password=SOURCE_PASSWORD \
      --private-connection=PRIVATE_CONN \
      --no-async

    Windows (PowerShell)

    gcloud database-migration connection-profiles create postgresql `
      SOURCE_CONN_ID `
      --region=REGION `
      --role=SOURCE `
      --host=SOURCE_PRIVATE_IP `
      --port=SOURCE_PORT `
      --username=SOURCE_USER `
      --password=SOURCE_PASSWORD `
      --private-connection=PRIVATE_CONN `
      --no-async

    Windows (cmd.exe)

    gcloud database-migration connection-profiles create postgresql ^
      SOURCE_CONN_ID ^
      --region=REGION ^
      --role=SOURCE ^
      --host=SOURCE_PRIVATE_IP ^
      --port=SOURCE_PORT ^
      --username=SOURCE_USER ^
      --password=SOURCE_PASSWORD ^
      --private-connection=PRIVATE_CONN ^
      --no-async
  5. Crea il profilo di connessione di destinazione.
    Seleziona la scheda in base al fatto che tu voglia eseguire la migrazione a un cluster AlloyDB per PostgreSQL nuovo o esistente:

    Nuovi cluster

    Per utilizzare un nuovo cluster di destinazione per la migrazione con avvio rapido, crea prima il cluster e la relativa istanza principale con Google Cloud CLI di AlloyDB per PostgreSQL, quindi crea il profilo di connessione di destinazione. Segui questi passaggi:

    1. Crea un cluster e la relativa istanza principale con Google Cloud CLI di AlloyDB per PostgreSQL. Assicurati di utilizzare il flag --enable-private-service-connect per abilitare il cluster di destinazione per Private Service Connect. Le migrazioni rapide supportano solo le destinazioni abilitate per Private Service Connect.
    2. Crea il profilo di connessione di destinazione per il nuovo cluster. Espandi la sezione seguente per i dettagli completi del comando.

      gcloud database-migration connection-profiles create postgresql

      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. Questa regione deve essere la stessa del cluster di destinazione.
      • DEST_CLUSTER con l'ID o il percorso completo della risorsa del cluster AlloyDB per PostgreSQL di destinazione.
      • DEST_USER con il nome utente dell'utente di migrazione nel database di destinazione.
      • DEST_PASSWORD con la password dell'utente di migrazione nel database di destinazione.

      Esegui questo comando:

      Linux, macOS o Cloud Shell

      gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
        --region=REGION \
        --alloydb-cluster=DEST_CLUSTER \
        --username=DEST_USER \
        --password=DEST_PASSWORD \
        --role=DESTINATION \
        --no-async

      Windows (PowerShell)

      gcloud database-migration connection-profiles create postgresql DEST_CONN_ID `
        --region=REGION `
        --alloydb-cluster=DEST_CLUSTER `
        --username=DEST_USER `
        --password=DEST_PASSWORD `
        --role=DESTINATION `
        --no-async

      Windows (cmd.exe)

      gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^
        --region=REGION ^
        --alloydb-cluster=DEST_CLUSTER ^
        --username=DEST_USER ^
        --password=DEST_PASSWORD ^
        --role=DESTINATION ^
        --no-async

      Dovresti ricevere una risposta simile alla seguente:

      Waiting for connection profile [CONNECTION_PROFILE_ID]
      to be created with [OPERATION_ID]
      
      Waiting for operation [OPERATION_ID] to complete...done.
      
      Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
      

    Cluster esistenti

    Per eseguire la migrazione a un cluster di destinazione esistente, crea il profilo di connessione che punta al cluster precreato. Esegui questo comando (fai clic per espandere):

    gcloud database-migration connection-profiles create postgresql

    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. Questa regione deve essere la stessa del cluster di destinazione.
    • DEST_CLUSTER con l'ID o il percorso completo della risorsa del cluster AlloyDB per PostgreSQL di destinazione.
    • DEST_USER con il nome utente dell'utente di migrazione nel database di destinazione.
    • DEST_PASSWORD con la password dell'utente di migrazione nel database di destinazione.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID \
      --region=REGION \
      --alloydb-cluster=DEST_CLUSTER \
      --username=DEST_USER \
      --password=DEST_PASSWORD \
      --role=DESTINATION \
      --no-async

    Windows (PowerShell)

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID `
      --region=REGION `
      --alloydb-cluster=DEST_CLUSTER `
      --username=DEST_USER `
      --password=DEST_PASSWORD `
      --role=DESTINATION `
      --no-async

    Windows (cmd.exe)

    gcloud database-migration connection-profiles create postgresql DEST_CONN_ID ^
      --region=REGION ^
      --alloydb-cluster=DEST_CLUSTER ^
      --username=DEST_USER ^
      --password=DEST_PASSWORD ^
      --role=DESTINATION ^
      --no-async

    Dovresti ricevere una risposta simile alla seguente:

    Waiting for connection profile [CONNECTION_PROFILE_ID]
    to be created with [OPERATION_ID]
    
    Waiting for operation [OPERATION_ID] to complete...done.
    
    Created connection profile CONNECTION_PROFILE_ID [OPERATION_ID]
    
  6. Crea un job di migrazione continuo.
    Esegui questo comando per creare un job di migrazione continuo (fai clic 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 l'identificatore del job di migrazione.
    • REGION con la regione in cui vuoi salvare il job di migrazione.
    • SOURCE_CONN_ID con l'identificatore del profilo di connessione di origine.
    • DEST_CONN_ID con l'identificatore del profilo di connessione di destinazione.
    • DATABASES_LIST con un elenco separato da virgole di database di cui vuoi eseguire la migrazione.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration migration-jobs create \
      MIGRATION_JOB_ID \
      --region=REGION \
      --type=CONTINUOUS \
      --source=SOURCE_CONN_ID \
      --destination=DEST_CONN_ID \
      --use-postgres-native \
      --postgres-max-additional-subscriptions=10 \
      --databases-filter=DATABASES_LIST \
      --no-async

    Windows (PowerShell)

    gcloud database-migration migration-jobs create `
      MIGRATION_JOB_ID `
      --region=REGION `
      --type=CONTINUOUS `
      --source=SOURCE_CONN_ID `
      --destination=DEST_CONN_ID `
      --use-postgres-native `
      --postgres-max-additional-subscriptions=10 `
      --databases-filter=DATABASES_LIST `
      --no-async

    Windows (cmd.exe)

    gcloud database-migration migration-jobs create ^
      MIGRATION_JOB_ID ^
      --region=REGION ^
      --type=CONTINUOUS ^
      --source=SOURCE_CONN_ID ^
      --destination=DEST_CONN_ID ^
      --use-postgres-native ^
      --postgres-max-additional-subscriptions=10 ^
      --databases-filter=DATABASES_LIST ^
      --no-async

    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]
    
  7. Avvia il job di migrazione.
    Per avviare il job di migrazione continuo, esegui questo comando (fai clic per espandere):

    gcloud database-migration migration-jobs start

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

    • MIGRATION_JOB_ID con l'identificatore del job di migrazione.

      Se non conosci l'identificatore, puoi utilizzare il comando gcloud database-migration migration-jobs list per elencare tutti i job di migrazione in una determinata regione e visualizzarne gli identificatori.

    • REGION con l'identificatore della regione in cui è salvato il job di migrazione.

    Esegui questo comando:

    Linux, macOS o Cloud Shell

    gcloud database-migration migration-jobs \
    start MIGRATION_JOB_ID \
      --region=REGION

    Windows (PowerShell)

    gcloud database-migration migration-jobs `
    start MIGRATION_JOB_ID `
      --region=REGION

    Windows (cmd.exe)

    gcloud database-migration migration-jobs ^
    start MIGRATION_JOB_ID ^
      --region=REGION

    Risultato

    L'azione viene eseguita in modo asincrono. Pertanto, questo comando restituisce un' entità Operation che rappresenta un'operazione a lunga esecuzione:

    done: false
    metadata:
      '@type': type.googleapis.com/google.cloud.clouddms.v1.OperationMetadata
      apiVersion: v1
      createTime: '2024-02-20T12:20:24.493106418Z'
      requestedCancellation: false
      target: MIGRATION_JOB_ID
      verb: start
    name: OPERATION_ID
    

    Per verificare se l'operazione è riuscita, puoi eseguire una query sull'oggetto operazione restituito o controllare lo stato del job di migrazione:

Finalizza la migrazione

Quando decidi di trasferire il traffico della tua applicazione al nuovo cluster AlloyDB per PostgreSQL, finalizza la migrazione seguendo questi passaggi:

  1. Interrompi tutte le operazioni di scrittura sul database di origine. Puoi impostare il database di origine in modalità di sola lettura per mantenere la funzionalità di query operativa durante il cutover.
  2. Promuovi il job di migrazione. Per le migrazioni rapide, il cluster di destinazione rimane scrivibile durante il processo di migrazione. La promozione del job di migrazione termina solo la replica e non ha alcun impatto sul cluster di destinazione.
  3. (Facoltativo) Verifica i dati della migrazione per verificarne la completezza e la coerenza.

Passaggi successivi