Gerenciar migração avançada

A migração avançada é uma solução para migrar dados de bancos de dados grandes com menos tempo de inatividade. Esse recurso está disponível apenas para o AlloyDB Omni e o PostgreSQL.

Um usuário com o papel de administrador de banco de dados do projeto precisa realizar as etapas a seguir. Use o console do GDC ou a CLI do Distributed Cloud para gerenciar migrações:

Console

  1. No menu principal, escolha Serviço de banco de dados.
  2. Clique em Criar migração.
  3. Na caixa de diálogo Começar, revise os requisitos da origem e da conectividade.
  4. Na caixa de diálogo Especifique seu banco de dados de origem, informe o nome do host ou o endereço IP, o nome de usuário, a senha, o tipo de criptografia e o certificado do banco de dados de origem.
  5. Na caixa de diálogo Configurar seu cluster, especifique o ID do cluster, a senha, a versão do banco de dados, a CPU, a memória e a capacidade de armazenamento do cluster de banco de dados de destino. Escolha memória suficiente para armazenar sua maior tabela.
  6. Clique em Criar. A criação da migração e do cluster de banco de dados de destino pode levar alguns minutos. O status muda de Reconciling para Ready quando o cluster está pronto. O status da migração muda para Unsynced quando a migração é configurada com êxito. Use as seguintes opções para gerenciar sua migração:
    1. Iniciar: inicia a migração e muda o status para Running.
    2. Interromper: interrompe a migração e muda o status para Stopped.
    3. Promover: promove o cluster de banco de dados de destino para um banco de dados independente.
    4. Excluir: exclui a migração e o cluster de banco de dados de destino criados para essa migração.

Faça a rotação periódica da senha do usuário de replicação do banco de dados de origem seguindo estas etapas:

  1. Acesse Banco de dados de origem e clique em Editar Editar.
  2. Faça as mudanças para girar a senha do usuário de replicação.
  3. Clique em Salvar para aplicar as alterações.

Depois que a mudança é aplicada, o back-end de migração usa a nova senha.

gdcloud

  1. Antes de usar a CLI do Distributed Cloud, instale e inicialize. Em seguida, faça a autenticação com 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 mecanismo de banco de dados para migração. Os valores aceitos são: postgresql ou alloydbomni
    • SOURCE_CONNECTION_PROFILE, o nome do novo perfil de conexão.
    • REPLICATION_USERNAME, o nome do usuário de replicação do banco de dados de origem.
    • REPLICATION_PASSWORD, a senha do usuário de replicação do banco de dados de origem.
    • CA_CERT_FILE_PATH, o caminho para o certificado de CA do banco de dados de origem.
    • MIGRATION_NAME, o nome da nova migração.
    • DESTINATION_DBCLUSTER, o nome do cluster de banco de dados de destino.
    • DB_VERSION, a string de versão do novo cluster. Por exemplo, POSTGRESQL_13.
    • ADMIN_PASSWORD, a senha do usuário administrador para o novo cluster.
  3. Inicie uma migração:

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

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

    gdcloud database migrations promote MIGRATION_NAME
    
  6. Liste os perfis de conexão atuais:

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

    gdcloud database migrations list --destination DESTINATION_DBCLUSTER
    

API

Para bancos de dados de origem do AlloyDB ou PostgreSQL:

Crie um secret para armazenar o certificado de CA do banco 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 secret para armazenar a senha do usuário de migração do banco 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 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

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 o banco de dados de origem.
  • USER_PROJECT: o nome do projeto do usuário em que o externalserver é criado.
  • DBENGINE_NAME: o nome do mecanismo de banco de dados. É um dos campos alloydbomni ou postgresql.
  • SOURCE_DB_CA_CERT: o certificado da CA do banco de dados de origem.
  • SOURCE_DB_USER_PASSWORD: a senha do usuário de migração do banco de dados de origem.
  • SOURCE_DB_USERNAME: o nome de usuário da migração do banco de dados de origem.
  • SOURCE_DB_HOST: o endereço do host de migração do banco de dados de origem.
  • MIGRATION_NAME: o nome da operação de migração.
  • DBCLUSTER_NAME: o nome do cluster de banco de dados de destino da migração.
  • MIGRATION_CONTROL: os controles da operação de migração. Precisa ser start ou stop quando a migração é criada. Ele precisa ser promote para promover o cluster de banco de dados de destino da migração.