Faça a gestão da migração avançada

A migração avançada é uma solução para migrar dados de bases de dados de grande dimensão com menos inatividade. Esta funcionalidade só está disponível para o AlloyDB Omni e o PostgreSQL.

Um utilizador com a função de administrador da base de dados do projeto tem de realizar os seguintes passos. Use a consola do GDC ou a CLI do Distributed Cloud para gerir as migrações:

Consola

  1. No menu principal, escolha Serviço de base de dados.
  2. Clique em Criar migração.
  3. Na caixa de diálogo Começar, reveja os requisitos da origem e da conetividade.
  4. Na caixa de diálogo Especifique a base de dados de origem, especifique o nome de anfitrião ou o endereço IP, o nome de utilizador, a palavra-passe, o tipo de encriptação e o certificado da base de dados de origem.
  5. Na caixa de diálogo Configure o cluster, especifique o ID do cluster, a palavra-passe, a versão da base de dados, a CPU, a memória e a capacidade de armazenamento do cluster da base de dados de destino. Certifique-se de que escolhe memória suficiente para armazenar a sua maior tabela.
  6. Clique em Criar. A criação do cluster de migração e da base de dados de destino pode demorar alguns minutos. O estado muda de Reconciling para Ready quando o cluster está pronto. O estado da migração muda para Unsynced quando a migração é configurada com êxito. Use as seguintes opções para gerir a sua migração:
    1. Iniciar: inicia a migração e altera o estado da migração para Running.
    2. Parar: esta opção para a migração e altera o estado da migração para Stopped.
    3. Promover: esta opção promove o cluster da base de dados de destino para uma base de dados autónoma.
    4. Eliminar: elimina a migração e o cluster da base de dados de destino criados para esta migração.

Rode periodicamente a palavra-passe do utilizador da replicação da base de dados de origem com os seguintes passos:

  1. Aceda a Base de dados de origem e clique em editar Editar.
  2. Faça as alterações para rodar a palavra-passe do utilizador de replicação.
  3. Clique em Guardar para aplicar as alterações.

Após a aplicação da alteração, o back-end da migração usa a nova palavra-passe.

gdcloud

  1. Antes de usar a Distributed Cloud CLI, instale-a e inicialize-a. Em seguida, faça a autenticação com a sua organização.

  2. Crie uma migração:

    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
    

    Substitua as seguintes variáveis:

    • DB_ENGINE_TYPE, o tipo de motor de BD para migração. Os valores suportados são: postgresql ou alloydbomni
    • SOURCE_CONNECTION_PROFILE, o nome do novo perfil de associação.
    • REPLICATION_USERNAME, o nome do utilizador de replicação da base de dados de origem.
    • REPLICATION_PASSWORD, a palavra-passe do utilizador de replicação da base de dados de origem.
    • CA_CERT_FILE_PATH, o caminho para o certificado de CA da base de dados de origem.
    • MIGRATION_NAME, o nome da nova migração.
    • DESTINATION_DBCLUSTER, o nome do cluster da base de dados de destino.
    • DB_VERSION, a string da versão do novo cluster. Por exemplo, POSTGRESQL_13.
    • ADMIN_PASSWORD, a palavra-passe do utilizador administrador para o novo cluster.
  3. Inicie uma migração:

    gdcloud database migrations start MIGRATION_NAME
    
  4. Parar uma migração:

    gdcloud database migrations stop MIGRATION_NAME
    
  5. Promova uma migração:

    gdcloud database migrations promote MIGRATION_NAME
    
  6. Apresentar perfis de ligação existentes:

    gdcloud database connection-profiles list DB_ENGINE_TYPE
    
  7. Liste a migração existente:

    gdcloud database migrations list --destination DESTINATION_DBCLUSTER
    

API

Para bases de dados de origem do AlloyDB ou PostgreSQL:

Crie um segredo para armazenar o certificado da AC da base de dados de origem:

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

Crie um segredo para armazenar a palavra-passe do utilizador de migração da base de dados de origem:

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

Crie um servidor externo:

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

Crie uma migração:

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

Substitua as seguintes variáveis:

  • EXTERNAL_SERVER_NAME: o nome do externalserver que representa a base de dados de origem.
  • USER_PROJECT: o nome do projeto do utilizador onde o externalserver é criado.
  • DBENGINE_NAME: o nome do motor da base de dados. Esta é uma das propriedades alloydbomni ou postgresql.
  • SOURCE_DB_CA_CERT: o certificado de AC da base de dados de origem.
  • SOURCE_DB_USER_PASSWORD: a palavra-passe do utilizador de migração da base de dados de origem.
  • SOURCE_DB_USERNAME: o nome de utilizador da migração da base de dados de origem.
  • SOURCE_DB_HOST: o endereço do anfitrião de migração da base de dados de origem.
  • MIGRATION_NAME: o nome da operação de migração.
  • DBCLUSTER_NAME: o nome do cluster da base de dados de destino da migração.
  • MIGRATION_CONTROL: os controlos da operação de migração. Deve ser um dos seguintes valores: start ou stop quando a migração é criada. Deve ser promote para promover o cluster da base de dados de destino da migração.