Usar migrações de início rápido para migrar para o AlloyDB para PostgreSQL


Nesta página, descrevemos como realizar migrações contínuas de início rápido para migrações homogêneas do PostgreSQL para o AlloyDB para PostgreSQL.

Visão geral

As migrações de início rápido são um fluxo de migração contínua leve para cenários homogêneos do PostgreSQL. Com as migrações de início rápido, o Database Migration Service pode configurar automaticamente os principais recursos de rede e migração necessários: anexos de rede, sub-redes, configurações de conectividade particular com interfaces do Private Service Connect, perfis de conexão e jobs de migração contínua.

Com as migrações de início rápido, é possível mover seus dados para um cluster do AlloyDB para PostgreSQL ou criar um novo ao configurar a migração. As migrações de início rápido são mais adequadas para:

  • Migrações básicas em que você não precisa de configurações personalizadas de paralelismo de despejo de dados.
  • Migrar o banco de dados de um projeto do Google Cloud para outro. Ao configurar uma migração de início rápido, é possível criar o cluster de destino em um projeto diferente da origem e configurar o Database Migration Service para criar o anexo de rede e a sub-rede na rede de nuvem privada virtual (VPC) de outro projeto.
  • Migração de origens que têm um endereço IP privado na sua rede VPC do Google Cloud, como bancos de dados autogerenciados no Compute Engine ou instâncias do Cloud SQL para PostgreSQL ativadas para rede privada.

    As origens hospedadas fora do Google Cloud podem precisar de outros componentes de rede (como uma conexão Cloud VPN) para que possam ser acessadas em um endereço IP particular na sua rede VPC.

  • As migrações de início rápido são compatíveis com a conectividade de IP público e de interfaces do Private Service Connect. Os túneis SSH reversos não são compatíveis com migrações de início rápido.

Para saber mais sobre as migrações de início rápido, consulte Visão geral das migrações de início rápido na documentação principal do Database Migration Service.

Antes de começar

  1. Verifique se as migrações de início rápido são totalmente compatíveis com seu cenário. Consulte Limitações da migração de início rápido.
  2. No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .

    Acessar o seletor de projetos

  3. Ative as APIs Database Migration Service, Compute Engine, Network Connectivity Center e AlloyDB para PostgreSQL.

    Ativar as APIs

Funções exigidas

Para receber as permissões necessárias para executar migrações de início rápido para o AlloyDB para PostgreSQL com o Database Migration Service, peça ao administrador para conceder os papéis necessários do Identity and Access Management (IAM) para as contas envolvidas na migração nos projetos relevantes. Para mais informações sobre como conceder papéis, consulte Gerenciar o acesso na documentação do IAM.

Papéis e permissões no projeto de origem

Se você usa a conectividade de IP privado para se conectar a um banco de dados de origem em um projeto doGoogle Cloud , conceda os seguintes papéis a contas específicas no projeto em que o banco de dados de origem reside:

  • Para a conta de usuário que realiza a migração:
  • Para a conta de serviço do Database Migration Service do projeto de destino: Leitor de rede do Compute (roles/compute.networkViewer)

    A conta de serviço do Database Migration Service é criada quando você ativa a API Database Migration Service. O endereço de e-mail associado a essa conta é gerado automaticamente e não pode ser alterado. Esse endereço de e-mail usa o seguinte formato:

    service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.

Esses papéis predefinidos contêm as permissões necessárias para configurar a conectividade no projeto de banco de dados de origem como parte de uma migração de início rápido com o Database Migration Service. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias (origem):

Permissões necessárias (origem)

As permissões a seguir são necessárias para realizar migrações homogêneas de início rápido com o Database Migration Service:

Para a conta de usuário que realiza a migração:

  • compute.networks.get
  • compute.networks.list
  • compute.networks.updatePolicy
  • compute.subnetworks.get
  • compute.subnetworks.list
  • compute.subnetworks.create
  • compute.subnetworks.use
  • compute.networkAttachments.create
  • compute.networkAttachments.get
  • compute.networkAttachments.list
  • compute.networkAttachments.update
  • compute.networkAttachments.use
  • compute.regionOperations.get
  • networkconnectivity.internalRanges.create
  • networkconnectivity.internalRanges.get
  • networkconnectivity.operations.get
  • resourcemanager.projects.getIamPolicy

Para a conta de serviço do Database Migration Service do projeto de destino:

  • compute.networkAttachments.get

Papéis e permissões no projeto de destino

Conceda os seguintes papéis à conta de usuário que realiza a migração no projeto do Google Cloud em que o banco de dados de destino reside:

Além disso, a conta de serviço do Database Migration Service do projeto de destino (service-DESTINATION_PROJECT_NUMBER@gcp-sa-datamigration.) requer o papel de Agente do Database Migration Service (roles/datamigration.serviceAgent) no projeto de destino. O Google Cloud concede esse papel automaticamente quando você ativa a API Database Migration Service.

Esses papéis predefinidos contêm as permissões necessárias para configurar os componentes de migração necessários no projeto de banco de dados de destino como parte de uma migração de início rápido com o Database Migration Service. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias (destino):

Permissões necessárias (destino)

As permissões a seguir são necessárias para realizar migrações homogêneas de início rápido com o Database Migration Service:

Para a conta de usuário que realiza a migração:

  • datamigration.privateconnections.get
  • datamigration.privateconnections.list
  • datamigration.privateconnections.create
  • datamigration.migrationjobs.create
  • datamigration.migrationjobs.update
  • datamigration.migrationjobs.verify
  • datamigration.migrationjobs.start
  • datamigration.migrationjobs.get
  • datamigration.migrationjobs.fetchSourceObjects
  • datamigration.operations.get
  • datamigration.connectionprofiles.create
  • datamigration.connectionprofiles.get
  • datamigration.connectionprofiles.update
  • datamigration.locations.list
  • datamigration.locations.fetchStaticIps
  • 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.operations.get
  • alloydb.users.list
  • alloydb.users.get
  • alloydb.users.create
  • alloydb.users.update
  • alloydb.users.delete
  • resourcemanager.projects.getIamPolicy

Para a conta de serviço do Database Migration Service do projeto de destino:

  • alloydb.clusters.import
  • alloydb.instances.connect
  • alloydb.instances.executeSql

Configurar o banco de dados de origem

Para configurar o banco de dados PostgreSQL de origem, faça o seguinte:

  1. Crie uma conta de usuário de migração dedicada na instância.
    • Para origens do Cloud SQL para PostgreSQL, consulte Criar um usuário na documentação do Cloud SQL.
    • Para outras origens, consulte a documentação do provedor de banco de dados ou criar e gerenciar usuários na documentação do PostgreSQL.
  2. Atribua os privilégios necessários à conta de usuário de migração dedicada. Execute os seguintes comandos para cada banco de dados que você quer migrar:
    -- 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;

    Substitua:

    • MIGRATION_USER pelo nome da conta de usuário de migração.
    • DATABASE_NAME pelo nome do banco de dados que você quer migrar.
    • SCHEMA_NAME pelo nome do esquema no banco de dados que você quer migrar.
  3. A conta de usuário de migração precisa ter acesso de propriedade às tabelas que você migrar. Para conceder esse nível de acesso, siga um destes procedimentos:
    • Somente para origens que não sejam do Cloud SQL para PostgreSQL: atribua o papel SUPERUSER do PostgreSQL à conta de migração.
    • Para todas as origens: adicione a conta de usuário de migração ao grupo de usuários que possui as tabelas. Execute este comando:
      -- Grant table ownership.
      GRANT TABLE_OWNER_GROUP_NAME TO MIGRATION_USER;

      Substitua:

      • TABLE_OWNER_GROUP_NAME pelo nome do grupo de usuários proprietário de cada tabela que você quer migrar.
      • MIGRATION_USER pelo nome da conta de usuário de migração.
  4. Para tabelas sem chaves primárias: o Database Migration Service não replica operações UPDATE ou DELETE para tabelas sem chaves primárias durante a fase de captura de dados alterados (CDC). Se você quiser incluir essas operações na replicação, modifique as tabelas sem chaves primárias com REPLICA IDENTITY:
    ALTER TABLE TABLE_NAME REPLICA IDENTITY FULL;
    ALTER TABLE TABLE_NAME REPLICA IDENTITY USING INDEX INDEX_NAME;

    Substitua:

    • TABLE_NAME é o nome da tabela que não tem chaves primárias.
    • INDEX_NAME é o índice exclusivo que pode rastrear linhas de tabelas sem chaves primárias.
  5. Defina as configurações de replicação usando flags de banco de dados.

    Origens autogerenciadas

    Para salvar as mudanças nas flags de banco de dados, é necessário reiniciar o banco de dados por completo. Os exemplos a seguir usam consultas SQL para alterar os valores das flags. Se não for possível executar consultas SQL diretamente, consulte a documentação do provedor para saber como mudar essas flags.

    1. Defina o parâmetro wal_level como logical. Execute este comando:
      ALTER SYSTEM SET wal_level = 'logical';
    2. Defina o parâmetro wal_sender_timeout como 0. Esse valor desativa o mecanismo de tempo limite usado para encerrar conexões de replicação inativas. Execute este comando:
      ALTER SYSTEM SET wal_sender_timeout = 0;
    3. Configure o número máximo de slots de replicação com o parâmetro max_replication_slots. Esse parâmetro precisa ser definido como pelo menos o número de bancos de dados que você está migrando por job de migração, além de algumas reservas para sincronização de tabelas.

      Por exemplo, se você estiver migrando cinco bancos de dados e houver dois jobs de migração criados para a instância de origem, o número de slots de replicação precisará ser pelo menos 5 * 2 = 10, além do número de slots de replicação que você já usa.

      Para definir esse parâmetro, execute o seguinte comando:

      ALTER SYSTEM SET max_replication_slots = NUMBER_OF_SLOTS;
      Em que NUMBER_OF_SLOTS representa o número máximo de slots de replicação.
    4. Configure o parâmetro max_wal_senders com pelo menos o mesmo valor de max_replication_slots, mais o número de remetentes já usados na instância.

      Por exemplo, se o parâmetro max_replication_slots estiver definido como 10 e você já estiver usando dois remetentes, o número de processos de remetentes WAL em execução ao mesmo tempo será 10 + 2 = 12.

      Para definir esse parâmetro, execute o seguinte comando:

      ALTER SYSTEM SET max_wal_senders = NUMBER_OF_SENDERS;
      Em que NUMBER_OF_SENDERS representa o número de processos de remetente WAL em execução simultânea.
    5. Defina o max_worker_processes como, pelo menos, o número de bancos de dados que você quer migrar, mais o número de max_worker_processes já usados na instância. Para definir esse parâmetro, execute o seguinte comando:
      ALTER SYSTEM SET max_worker_processes = NUMBER_OF_PROCESSES;
      Em que NUMBER_OF_PROCESSES representa o número de bancos de dados que serão migrados.

    Origens do Cloud SQL para PostgreSQL

    Para origens do Cloud SQL, configure as flags de banco de dados no console do Google Cloud . É necessário reiniciar a instância depois de modificar as flags de banco de dados para que a configuração entre em vigor. Para mais informações sobre como definir flags de banco de dados no Cloud SQL, consulte Configurar flags de banco de dados na documentação do Cloud SQL.

    1. Defina a flag cloudsql.logical_decoding como on. Para que a configuração entre em vigor, é necessário reiniciar a instância.
    2. Defina o parâmetro wal_sender_timeout como 0. Esse valor desativa o mecanismo de tempo limite usado para encerrar conexões de replicação inativas.
    3. Configure o número máximo de slots de replicação com o parâmetro max_replication_slots. Esse parâmetro precisa ser definido como pelo menos o número de bancos de dados que você está migrando por job de migração, além de algumas reservas para sincronização de tabelas.

      Por exemplo, se você estiver migrando cinco bancos de dados e houver dois jobs de migração criados para a instância de origem, o número de slots de replicação precisará ser pelo menos 5 * 2 = 10, além do número de slots de replicação que você já usa.

    4. Configure o parâmetro max_wal_senders para pelo menos o mesmo valor de max_replication_slots, mais o número de remetentes já usados na instância.

      Por exemplo, se o parâmetro max_replication_slots estiver definido como 10 e você já estiver usando dois remetentes, o número de processos de remetentes WAL em execução ao mesmo tempo será 10 + 2 = 12.

    5. Defina o parâmetro max_worker_processes como, pelo menos, o número de bancos de dados que você quer migrar, mais o número de max_worker_processes já usados na instância.

Criar e executar uma migração de início rápido

Para criar e executar uma migração de início rápido, use o console do Google Cloud ou a CLI gcloud.

Console

  1. No console do Google Cloud , acesse a página Começar.

    Acesse "Começar"

  2. No menu Mecanismo de origem, selecione PostgreSQL.
  3. No menu Mecanismo de destino, selecione AlloyDB para PostgreSQL.

    A seção Apresentamos a migração de início rápido do PostgreSQL é exibida.

  4. Na seção Apresentamos a migração de início rápido do PostgreSQL, clique em Iniciar migração.

    A página Migrar para o AlloyDB para PostgreSQL é aberta.

  5. Na seção Configurar migração, faça o seguinte:
    1. No menu Região de destino, selecione a região do cluster de destino do AlloyDB para PostgreSQL.
    2. Na caixa Prefixo de migração, insira uma string legível que será adicionada aos nomes de todas as entidades de migração criadas para a migração de início rápido: perfis de conexão, configuração de conectividade privada, anexo de rede e sub-rede e job de migração.
    3. No menu Tipo de conectividade, selecione como o Database Migration Service se conecta ao banco de dados de origem:
      • IP particular: conecte-se por uma rede particular usando as interfaces do Private Service Connect. No menu Tipo de configuração, selecione uma das seguintes opções:
        • Configuração de conectividade atual: selecione essa opção se você já tiver um anexo de rede e uma configuração de conectividade particular que use o método de interfaces do Private Service Connect. Essa opção é mais adequada se você já usou migrações de início rápido e quer reutilizar os mesmos recursos de rede.
        • Nova configuração de conectividade: selecione essa opção para criar um novo anexo de rede e a sub-rede do anexo de rede na rede VPC do banco de dados de origem. A configuração de conectividade privada será criada no mesmo projeto do cluster de destino.
      • IP público: conecte-se pela Internet pública usando um endereço IP público estático de saída dedicado. Se já houver uma configuração de conectividade de IP público no projeto e na região de destino, o Database Migration Service vai reutilizá-la. Caso contrário, o Database Migration Service vai criar uma nova configuração de conectividade de IP público e gerar um endereço IP de saída quando você continuar.
    4. Clique em Continuar. Se for preciso confirmar a criação de recursos de rede, clique em Configurar e continuar.
  6. Na seção Conectar origem, faça o seguinte:
    1. Se você selecionou IP público na etapa anterior, copie o endereço IP de saída exibido no console do Google Cloud e adicione-o como uma regra de firewall de entrada ou entrada de lista de permissões de IP na rede de origem (como pg_hba.conf ou grupos de segurança do provedor de nuvem) para permitir que o Database Migration Service se conecte.
    2. Insira um Nome do host ou o Endereço IP do banco de dados de origem. Se você selecionou IP particular, insira o endereço IP particular acessível pela rede VPC de origem. Se você selecionou IP público, insira o endereço IP público do banco de dados de origem.
    3. Insira a porta usada para acessar o host. A porta padrão do PostgreSQL é 5432.
    4. Insira o nome de usuário e a senha da conta de migração dedicada no banco de dados de origem.
    5. No menu Tipo de criptografia, selecione uma das seguintes opções:
      • Nenhuma: se o banco de dados de origem não exigir conexões criptografadas por SSL/TLS.
      • Obrigatório: se o banco de dados de origem exigir conexões criptografadas por SSL/TLS. Essa opção não requer nenhuma verificação de certificado.
    6. No menu Bancos de dados para migrar, clique em Personalizar. Use o painel lateral com descoberta de banco de dados incorporada para selecionar apenas os bancos de dados que você quer migrar para o AlloyDB para PostgreSQL.
    7. Clique em Continuar.
  7. Na seção Configurar destino, é possível criar um novo cluster de destino ou selecionar um atual:

    Novos clusters

    Se você quiser criar um novo cluster de destino, faça o seguinte:

    1. No menu Tipo de instância de destino, selecione Novo cluster.

      O Database Migration Service usa a configuração padrão do AlloyDB para PostgreSQL em um novo cluster. Clique em Personalizar para ajustar os recursos do cluster, como o tipo de máquina, a disponibilidade zonal ou as configurações de proteção de dados. Para mais informações sobre a configuração do cluster, consulte Criar um cluster e a instância principal dele na documentação do AlloyDB para PostgreSQL.

    2. No campo Senha, insira uma senha para o usuário administrador padrão do postgres. O Database Migration Service se conecta como esse usuário para migrar seus dados.

    Clusters atuais

    É possível migrar bancos de dados para um cluster que já existe. Verifique se o cluster de destino está ativado para o Private Service Connect, está no estado RUNNABLE e não aplica mTLS com conectores do AlloyDB. Faça o seguinte:

    1. No menu Tipo de instância de destino, selecione Cluster atual.
    2. No menu ID do cluster atual, selecione o identificador do cluster.
  8. Clique em Iniciar migração.

    O Database Migration Service cria o job de migração contínua e começa a replicar os dados. É possível monitorar o progresso da migração e a integridade do cluster de destino no AlloyDB para PostgreSQL. Para mais informações, consulte Ver detalhes do cluster e da instância na documentação do AlloyDB para PostgreSQL.

gcloud

Para criar e executar uma migração de início rápido usando a CLI gcloud, faça o seguinte:

  1. Configure a conectividade com o banco de dados de origem.
    Selecione a guia com base no uso de IP particular (Private Service Connect) ou IP público pelo banco de dados de origem:

    IP particular (Private Service Connect)

    Para se conectar usando o Private Service Connect, configure o anexo de rede e a conexão particular:

    1. Configure o anexo de rede: decida se você quer criar um novo anexo de rede ou reutilizar um que já existe. É preciso ter um anexo de rede na rede em que o IP privado do banco de dados de origem possa ser acessado.

      • Se você quiser criar um novo anexo de rede, execute o comando a seguir (clique para abrir todos os detalhes).

        gcloud compute network-attachments create

        Antes de usar os dados do comando abaixo, faça estas substituições:

        • NETWORK_ATTACHMENT pelo nome do anexo de rede que será criado.
        • REGION pela região do anexo de rede.
        • DEST_PROJECT_ID pelo ID do projeto de destino.
        • SOURCE_PROJECT_ID pelo ID do projeto em que a rede de origem está localizada.

        Execute o seguinte comando:

        Linux, macOS ou 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
      • Se você quiser reutilizar um anexo de rede, prossiga para a próxima etapa.
    2. Permita que o projeto de locatário do Database Migration Service acesse seu anexo de rede: o anexo de rede precisa permitir conexões do projeto de locatário do Database Migration Service. Siga as etapas abaixo:

      1. Recupere o ID do projeto de locatário do Database Migration Service realizando uma simulação de criação de conexão particular (clique para expandir):

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

        Antes de usar os dados do comando abaixo, faça estas substituições:

        • PRIVATE_CONN pelo nome do recurso de conexão particular.
        • REGION pela região da conexão particular.
        • NETWORK_ATTACHMENT_URI pelo URI do anexo de rede.

        Execute o seguinte comando:

        Linux, macOS ou 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

        Salve o ID do projeto de locatário retornado para usar com os próximos comandos.

      2. Permita que o projeto de locatário do Database Migration Service e o projeto de destino se conectem ao anexo de rede (clique para abrir):

        gcloud compute network-attachments update

        Antes de usar os dados do comando abaixo, faça estas substituições:

        • NETWORK_ATTACHMENT pelo nome do anexo de rede.
        • REGION pela região.
        • DEST_PROJECT_ID pelo ID do projeto de destino.
        • DMS_TENANT_ID pelo ID do projeto de locatário do Database Migration Service recuperado.
        • SOURCE_PROJECT_ID pelo ID do projeto em que a rede de origem está localizada.

        Execute o seguinte comando:

        Linux, macOS ou 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. Crie o recurso de conectividade particular do Database Migration Service: execute o seguinte comando (clique para expandir):

      gcloud database-migration private-connections create

      Antes de usar os dados do comando abaixo, faça estas substituições:

      • PRIVATE_CONN pelo nome do recurso de conexão particular.
      • REGION pela região da conexão particular.
      • NETWORK_ATTACHMENT_URI pelo URI do anexo de rede.

      Execute o seguinte comando:

      Linux, macOS ou 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

    IP público

    Para se conectar a um banco de dados de origem com um endereço IP público, siga estas etapas:

    1. Criar uma conexão particular com IP público reservado.
      Execute o seguinte comando (clique para expandir):

      gcloud database-migration private-connections create

      Este exemplo usa a flag opcional --no-async para que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag --no-async para executar comandos de forma assíncrona. Se você fizer isso, use o comando gcloud database-migration operations describe para verificar se a operação foi bem-sucedida.

      Antes de usar os dados do comando abaixo, faça estas substituições:

      • CONNECTION_ID pelo identificador da conexão particular.
      • REGION pela região do Google Cloud em que você quer criar a conexão particular.
      • DISPLAY por um nome de exibição fácil para a conexão particular.
      • Opcional: é possível substituir a flag --reserved-public-ip por --reserved-public-ip-nat-ips-count para reservar vários endereços IP públicos dedicados que o Database Migration Service usa para conexão. É possível reservar até 10 endereços IP.

      Execute o seguinte comando:

      Linux, macOS ou Cloud Shell

      gcloud database-migration private-connections create \
        CONNECTION_ID \
        --region=REGION \
        --display-name="DISPLAY" \
        --reserved-public-ip \
        --no-async

      Windows (PowerShell)

      gcloud database-migration private-connections create `
        CONNECTION_ID `
        --region=REGION `
        --display-name="DISPLAY" `
        --reserved-public-ip `
        --no-async

      Windows (cmd.exe)

      gcloud database-migration private-connections create ^
        CONNECTION_ID ^
        --region=REGION ^
        --display-name="DISPLAY" ^
        --reserved-public-ip ^
        --no-async
    2. Recupere os endereços IP públicos reservados.
      Execute o seguinte comando (clique para expandir):

      gcloud database-migration connection-profiles fetch-static-ips

      Antes de usar os dados do comando abaixo, faça estas substituições:

      • REGION pela região do Google Cloud da conexão particular.

      Execute o seguinte comando:

      Linux, macOS ou Cloud Shell

      gcloud database-migration connection-profiles fetch-static-ips \
        REGION \
        --fetch-reserved-public-ips

      Windows (PowerShell)

      gcloud database-migration connection-profiles fetch-static-ips `
        REGION `
        --fetch-reserved-public-ips

      Windows (cmd.exe)

      gcloud database-migration connection-profiles fetch-static-ips ^
        REGION ^
        --fetch-reserved-public-ips
    3. Adicione os endereços IP reservados à lista de permissões no banco de dados de origem.
      Adicione os endereços IP recuperados na etapa anterior à lista de permissões de entrada do banco de dados de origem (por exemplo, na configuração do pg_hba.conf, nos grupos de segurança do provedor de nuvem ou nas regras de firewall de rede) para que o Database Migration Service possa estabelecer uma conexão.

  2. Crie um perfil de conexão de origem.
    Execute o seguinte comando (clique para expandir):

    gcloud database-migration connection-profiles create postgresql

    Este exemplo usa a flag opcional --no-async para que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag --no-async para executar comandos de forma assíncrona. Se você fizer isso, use o comando gcloud database-migration operations describe para verificar se a operação foi bem-sucedida.

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • SOURCE_CONN_ID pelo identificador do perfil de conexão de origem.
    • REGION pela região em que você quer salvar o perfil de conexão.
    • SOURCE_PRIVATE_IP pelo endereço IP privado do banco de dados de origem.
    • SOURCE_PORT pela porta do banco de dados de origem (o padrão é 5432).
    • SOURCE_USER pelo nome de usuário da migração no banco de dados de origem.
    • SOURCE_PASSWORD pela senha do usuário de migração no banco de dados de origem.
    • PRIVATE_CONN pelo nome do recurso de conexão particular.

    Execute o seguinte comando:

    Linux, macOS ou 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
  3. Crie o perfil de conexão de destino.
    Selecione a guia com base em se você quer migrar para um cluster novo ou atual do AlloyDB para PostgreSQL:

    Novos clusters

    Para usar um novo cluster de destino na migração de início rápido, primeiro crie o cluster e a instância principal dele com a CLI do Google Cloud do AlloyDB para PostgreSQL e, em seguida, crie o perfil de conexão de destino. Siga estas etapas:

    1. Crie um cluster e a instância primária dele com a CLI do Google Cloud do AlloyDB para PostgreSQL. Use a flag --enable-private-service-connect para ativar o cluster de destino para o Private Service Connect. As migrações de início rápido são compatíveis apenas com destinos que usam o Private Service Connect.
    2. Crie o perfil de conexão de destino para o novo cluster. Abra a seção a seguir para ver todos os detalhes do comando.

      gcloud database-migration connection-profiles create postgresql

      Este exemplo usa a flag opcional --no-async para que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag --no-async para executar comandos de forma assíncrona. Se você fizer isso, use o comando gcloud database-migration operations describe para verificar se a operação foi bem-sucedida.

      Antes de usar os dados do comando abaixo, faça estas substituições:

      • DEST_CONN_ID pelo identificador do perfil de conexão de destino.
      • REGION pela região em que você quer salvar o perfil de conexão. Essa região precisa ser a mesma do cluster de destino.
      • DEST_CLUSTER pelo ID ou caminho completo do recurso do cluster de destino do AlloyDB para PostgreSQL.
      • DEST_USER pelo nome do usuário de migração no banco de dados de destino.
      • DEST_PASSWORD pela senha do usuário de migração no banco de dados de destino.

      Execute o seguinte comando:

      Linux, macOS ou 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

      Você receberá uma resposta semelhante a esta:

      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]
      

    Clusters atuais

    Para migrar para um cluster de destino, crie o perfil de conexão apontando para o cluster pré-criado. Execute o seguinte comando (clique para expandir):

    gcloud database-migration connection-profiles create postgresql

    Este exemplo usa a flag opcional --no-async para que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag --no-async para executar comandos de forma assíncrona. Se você fizer isso, use o comando gcloud database-migration operations describe para verificar se a operação foi bem-sucedida.

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • DEST_CONN_ID pelo identificador do perfil de conexão de destino.
    • REGION pela região em que você quer salvar o perfil de conexão. Essa região precisa ser a mesma do cluster de destino.
    • DEST_CLUSTER pelo ID ou caminho completo do recurso do cluster de destino do AlloyDB para PostgreSQL.
    • DEST_USER pelo nome do usuário de migração no banco de dados de destino.
    • DEST_PASSWORD pela senha do usuário de migração no banco de dados de destino.

    Execute o seguinte comando:

    Linux, macOS ou 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

    Você receberá uma resposta semelhante a esta:

    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]
    
  4. Criar um job de migração contínua.
    Execute o comando a seguir para criar um job de migração contínua (clique para expandir):

    gcloud database-migration migration-jobs create

    Este exemplo usa a flag opcional --no-async para que todas as operações sejam realizadas de forma síncrona. Isso significa que alguns comandos podem levar um tempo para serem concluídos. É possível pular a flag --no-async para executar comandos de forma assíncrona. Se você fizer isso, use o comando gcloud database-migration operations describe para verificar se a operação foi bem-sucedida.

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • MIGRATION_JOB_ID pelo identificador do job de migração.
    • REGION pela região em que você quer salvar o job de migração.
    • SOURCE_CONN_ID pelo identificador do perfil de conexão de origem.
    • DEST_CONN_ID pelo identificador do perfil de conexão de destino.
    • DATABASES_LIST por uma lista separada por vírgulas de bancos de dados que você quer migrar.

    Execute o seguinte comando:

    Linux, macOS ou 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

    Você receberá uma resposta semelhante a esta:

    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]
    
  5. Inicie o job de migração.
    Para iniciar o job de migração contínua, execute o seguinte comando (clique para expandir):

    gcloud database-migration migration-jobs start

    Antes de usar os dados do comando abaixo, faça estas substituições:

    • MIGRATION_JOB_ID pelo identificador do job de migração.

      Se você não souber o identificador, use o comando gcloud database-migration migration-jobs list para listar todos os jobs de migração em uma determinada região e ver os identificadores deles.

    • REGION pelo identificador da região em que o job de migração está salvo.

    Execute o seguinte comando:

    Linux, macOS ou 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

    Resultado

    A ação é realizada de maneira assíncrona. Assim, esse comando retorna uma entidade Operation que representa uma operação de longa duração:

    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
    

    Para ver se a operação foi bem-sucedida, consulte o objeto de operação retornado ou verifique o status do job de migração:

Finalizar a migração

Quando você decidir mudar o tráfego do aplicativo para o novo cluster do AlloyDB para PostgreSQL, conclua a migração seguindo estas etapas:

  1. Interrompa todas as operações de gravação no banco de dados de origem. É possível alternar o banco de dados de origem para o modo somente leitura para manter a funcionalidade de consulta operacional durante a transição.
  2. Promova o job de migração. Nas migrações de início rápido, o cluster de destino permanece gravável durante o processo de migração. A promoção do job de migração apenas encerra a replicação e não tem impacto no cluster de destino.
  3. Opcional: verifique se os dados de migração estão completos e consistentes.

A seguir