Gestire la migrazione avanzata

La migrazione avanzata è una soluzione per la migrazione dei dati per database di grandi dimensioni con tempi di inattività ridotti. Questa funzionalità è disponibile solo per AlloyDB Omni e PostgreSQL.

Un utente con il ruolo Amministratore DB progetto deve eseguire i seguenti passaggi. Utilizza la console GDC o Distributed Cloud CLI per gestire le migrazioni:

Console

  1. Nel menu principale, scegli Database Service.
  2. Fai clic su Crea migrazione.
  3. Nella finestra di dialogo Inizia, esamina i requisiti per l'origine e la connettività.
  4. Nella finestra di dialogo Specifica il database di origine, specifica il nome host o l'indirizzo IP, il nome utente, la password, il tipo di crittografia e il certificato del database di origine.
  5. Nella finestra di dialogo Configura il cluster, specifica l'ID cluster, la password, la versione del database, la CPU, la memoria e la capacità di archiviazione del cluster di database di destinazione. Assicurati di scegliere una memoria sufficiente per contenere la tabella più grande.
  6. Fai clic su Crea. La creazione del cluster di database di migrazione e di destinazione può richiedere alcuni minuti. Lo stato cambia da Reconciling a Ready quando il cluster è pronto. Lo stato della migrazione diventa Unsynced quando la migrazione viene configurata correttamente. Utilizza le seguenti opzioni per gestire la migrazione:
    1. Avvia: avvia la migrazione e cambia lo stato della migrazione in Running.
    2. Interrompi: interrompe la migrazione e modifica il relativo stato in Stopped.
    3. Promuovi: promuove il cluster di database di destinazione a un database autonomo.
    4. Elimina: questa operazione elimina la migrazione e il cluster di database di destinazione creato per questa migrazione.

Ruota periodicamente la password dell'utente di replica del database di origine seguendo questi passaggi:

  1. Vai a Database di origine e fai clic su Modifica Modifica.
  2. Apporta le modifiche per ruotare la password dell'utente di replica.
  3. Fai clic su Salva per applicare le modifiche.

Una volta applicata la modifica, il backend della migrazione utilizza la nuova password.

gdcloud

  1. Prima di utilizzare Distributed Cloud CLI, installala e inizializzala. Poi, autenticati con la tua organizzazione.

  2. Crea una migrazione:

    gdcloud database connection-profiles create DB_ENGINE_TYPE SOURCE_CONNECTION_PROFILE \
        --username REPLICATION_USERNAME \
        --password REPLICATION_PASSWORD \
        --ca-certificate CA_CERT_FILE_PATH
    
    gdcloud database migrations create MIGRATION_NAME \
        --source SOURCE_CONNECTION_PROFILE \
        --destination DESTINATION_DBCLUSTER
    
    gdcloud database clusters create DESTINATION_DBCLUSTER \
        --database-version DB_VERSION \
        --admin-password ADMIN_PASSWORD
    

    Sostituisci le seguenti variabili:

    • DB_ENGINE_TYPE, il tipo di motore del database per la migrazione. I valori supportati sono: postgresql o alloydbomni
    • SOURCE_CONNECTION_PROFILE, il nome del nuovo profilo di connessione.
    • REPLICATION_USERNAME, il nome dell'utente di replica del database di origine.
    • REPLICATION_PASSWORD, la password dell'utente di replica del database di origine.
    • CA_CERT_FILE_PATH, il percorso del certificato CA del database di origine.
    • MIGRATION_NAME, il nome della nuova migrazione.
    • DESTINATION_DBCLUSTER, il nome del cluster di database di destinazione.
    • DB_VERSION, la stringa di versione per il nuovo cluster. Ad esempio, POSTGRESQL_13.
    • ADMIN_PASSWORD, la password dell'utente amministratore per il nuovo cluster.
  3. Avvia una migrazione:

    gdcloud database migrations start MIGRATION_NAME
    
  4. Per interrompere una migrazione:

    gdcloud database migrations stop MIGRATION_NAME
    
  5. Promuovere una migrazione:

    gdcloud database migrations promote MIGRATION_NAME
    
  6. Elenca i profili di connessione esistenti:

    gdcloud database connection-profiles list DB_ENGINE_TYPE
    
  7. Elenca la migrazione esistente:

    gdcloud database migrations list --destination DESTINATION_DBCLUSTER
    

API

Per i database di origine AlloyDB o PostgreSQL:

Crea un secret per archiviare il certificato CA del database di origine:

apiVersion: v1
data:
  ca.crt:  SOURCE_DB_CA_CERT
kind: Secret
metadata:
  annotations:
    propagation.gdch.gke.io/target-namespace:  USER_PROJECT
  name: es-crt-EXTERNAL_SERVER_NAME
  namespace: USER_PROJECT
type: Opaque

Crea un secret per archiviare la password dell'utente per la migrazione del database di origine:

apiVersion: v1
data:
  password: SOURCE_DB_USER_PASSWORD
kind: Secret
metadata:
  annotations:
    propagation.gdch.gke.io/target-namespace: USER_PROJECT
  name: es-pw-EXTERNAL_SERVER_NAME
  namespace: USER_PROJECT
type: Opaque

Crea un externalserver:

apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: ExternalServer
metadata:
  name: EXTERNAL_SERVER_NAME
  namespace: USER_PROJECT
spec:
  host: SOURCE_DB_HOST
  port: 5432
  username: SOURCE_DB_USERNAME
  password:
    name: es-pw-EXTERNAL_SERVER_NAME
    namespace: USER_PROJECT
  certRef:
    name: es-crt-EXTERNAL_SERVER_NAME
    namespace: USER_PROJECT

Crea una migrazione:

apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
kind: Migration
metadata:
  name: MIGRATION_NAME
  namespace: USER_PROJECT
spec:
  source:
    reference:
      apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
      kind: ExternalServer
      name: EXTERNAL_SERVER_NAME
  target:
    reference:
      apiVersion: DBENGINE_NAME.dbadmin.gdc.goog/v1
      kind: DBCluster
      name: DBCLUSTER_NAME
  control: MIGRATION_CONTROL

Sostituisci le seguenti variabili:

  • EXTERNAL_SERVER_NAME: il nome di externalserver che rappresenta il database di origine.
  • USER_PROJECT: il nome del progetto utente in cui viene creato externalserver.
  • DBENGINE_NAME: il nome del motore del database. Si tratta di alloydbomni o postgresql.
  • SOURCE_DB_CA_CERT: il certificato CA del database di origine.
  • SOURCE_DB_USER_PASSWORD: la password dell'utente di migrazione del database di origine.
  • SOURCE_DB_USERNAME: il nome utente di migrazione del database di origine.
  • SOURCE_DB_HOST: l'indirizzo host di migrazione del database di origine.
  • MIGRATION_NAME: il nome dell'operazione di migrazione.
  • DBCLUSTER_NAME: il nome del cluster di database di destinazione della migrazione.
  • MIGRATION_CONTROL: i controlli dell'operazione di migrazione. Deve essere uno tra start o stop al momento della creazione della migrazione. Deve essere promote per promuovere il cluster di database di destinazione della migrazione.