Fluxo de migração

Para migrações homogêneas do PostgreSQL para o AlloyDB para PostgreSQL, o Database Migration Service se conecta à instância principal do cluster de destino do AlloyDB para PostgreSQL e gerencia o processo de migração contínua em nome dele. A instância principal de destino estabelece a conexão com o banco de dados de origem, enquanto o Database Migration Service organiza e monitora o pipeline de dados de ponta a ponta.

Para migrações homogêneas padrão do PostgreSQL para o AlloyDB para PostgreSQL, o Database Migration Service oferece suporte a migrações contínuas. Em uma migração contínua, os dados iniciais são carregados de um despejo de snapshot e, em seguida, as alterações de dados em andamento são replicadas continuamente do registro prévio de escrita (WAL) do banco de dados de origem usando a decodificação lógica e a extensão pglogical. Para migrações contínuas de início rápido, o Database Migration Service usa o pgnative.

Fases de migração contínua

As migrações contínuas passam pelas seguintes fases sequenciais:

Migrações padrão

  1. Configuração e orquestração da replicação: quando você cria o job de migração, o Database Migration Service configura a instância principal do cluster de destino do AlloyDB para PostgreSQL para atuar como uma réplica e estabelece assinaturas de replicação com a extensão pglogical. Ao migrar para um cluster do AlloyDB para PostgreSQL, o Database Migration Service configura a replicação externa sem colocar o banco de dados no modo somente leitura.
  2. Fase de snapshot inicial: quando você inicia o job de migração, o Database Migration Service faz um snapshot consistente dos bancos de dados selecionados na instância de origem. Esse processo bloqueia brevemente a tabela (normalmente por menos de 10 segundos por tabela) enquanto o snapshot é inicializado. O banco de dados de origem continua aceitando leituras e gravações durante todo o processo.
  3. Fase de carregamento de dados: o Database Migration Service transmite os dados do snapshot inicial do banco de dados de origem e os carrega na instância principal do cluster de destino do AlloyDB para PostgreSQL.
  4. Criação de restrições e índices: após o carregamento de dados inicial, as restrições de tabela (incluindo chaves primárias e chaves estrangeiras) e os índices secundários são criados na instância de destino. Separar o carregamento de dados da criação de restrições otimiza a velocidade de ingestão de dados.
  5. Fase de captura de dados alterados (CDC): depois que as restrições são aplicadas, o Database Migration Service entra na fase contínua de CDC. Durante a CDC, o Database Migration Service captura as mudanças de DML em andamento do fluxo de replicação lógica do banco de dados de origem usando pglogical e as aplica ao cluster de destino quase em tempo real.
  6. Fase de transição e promoção: quando estiver tudo pronto para alternar o tráfego do aplicativo para o cluster de destino, interrompa as gravações no banco de dados de origem, verifique se o atraso de replicação chega a zero e inicie a promoção no Database Migration Service. Durante a promoção, o Database Migration Service desconecta o cluster de destino da origem, remove os slots de replicação e transforma o destino em uma instância principal independente de leitura/gravação do AlloyDB para PostgreSQL.

Migrações de início rápido

  1. Configuração e orquestração da replicação: quando você cria o job de migração, o Database Migration Service configura automaticamente a conectividade de rede em IPs privados usando interfaces do Private Service Connect (criando automaticamente configurações de conectividade privada, anexos de rede e sub-redes). Ele estabelece a replicação entre os bancos de dados de origem e de destino usando a replicação lógica do PostgreSQL (com pgnative), sem exigir a instalação da extensão pglogical na origem. O destino pode ser um cluster ativo do AlloyDB para PostgreSQL que disponibiliza tráfego para outros bancos de dados.
  2. Fase de snapshot inicial: quando você inicia o job de migração, o Database Migration Service faz um snapshot consistente dos bancos de dados selecionados (migrando até 50 bancos de dados por job) no servidor de banco de dados de origem. O banco de dados de origem continua aceitando leituras e gravações durante todo o processo.
  3. Fase de carregamento de dados: o Database Migration Service transmite os dados do snapshot inicial diretamente para o cluster de destino do AlloyDB para PostgreSQL por meio de uma conectividade particular. A propriedade dos objetos do banco de dados de destino é atribuída ao usuário do banco de dados de destino configurado para o job de migração (como o usuário padrão postgres).
  4. Criação de restrições e índices: após a conclusão do carregamento de dados inicial, as restrições de tabela e os índices secundários são criados no cluster de destino para garantir a fidelidade do esquema e maximizar o desempenho da ingestão.
  5. Fase de captura de dados alterados (CDC): depois que as restrições são aplicadas, o Database Migration Service entra na fase contínua de CDC. Durante a CDC, o Database Migration Service transmite as mudanças de DML em andamento do fluxo de replicação lógica do PostgreSQL pgnative e as aplica ao cluster de destino quase em tempo real. Para tabelas sem chaves primárias, as operações UPDATE e DELETE podem ser replicadas quando a identidade da réplica da tabela é configurada como INDEX ou FULL.
  6. Fase de transição e promoção: quando estiver tudo pronto para alternar o tráfego do aplicativo para o cluster de destino, interrompa as gravações no banco de dados de origem, verifique se o atraso de replicação chega a zero e inicie a promoção no Database Migration Service. Durante a promoção, o Database Migration Service finaliza a replicação de CDC, encerra os slots de replicação e desconecta o pipeline de migração, deixando os bancos de dados de destino do AlloyDB para PostgreSQL totalmente operacionais para conexões de clientes.

A seguir