Estou tentando mover um banco de dados Postgresql grande (4 TB) do AWS RDS para o banco de dados do Azure para servidor flexível Postgresql usando replicação lógica (publicação/assinatura). Estou realizando a replicação progressivamente por tabela e sincronizando as tabelas maiores, uma por uma, para reduzir a sobrecarga do WAL no primário. Estou enfrentando travamentos e longas esperas ao sincronizar tabelas maiores (> 10 GB).
Começando com a assinatura sincronizada e atualizada, quando adiciono uma nova tabela à publicação e atualizo a assinatura, vejo o tráfego de rede e o uso do disco aumentarem imediatamente (capacidade de gravação no assinante de 100 MB/s). Após cerca de meia hora, o tráfego quase para (1MB/s ou menos). Após algum período variável de 1 a 12 horas, o tráfego aumenta repentinamente novamente. Esse processo se repete até que a sincronização seja concluída e a tabela esteja atualizada.
Inspecionei os logs do banco de dados em ambos os lados e não consigo ver nenhuma mensagem de erro ou mesmo informações relacionadas ao processo de replicação. O que pode estar causando esses longos travamentos? Existem mais diagnósticos que posso fazer para ver a causa?
Depois de examinar as esperas do banco de dados de origem e destino, descobriu-se que isso era o resultado de um dispositivo proxy usado para expor o banco de dados de origem. A VM proxy era uma
t3.nano
instância expansível. Ao aumentar o tamanho da VM proxy, isso eliminou o gargalo e permitiu uma transferência mais rápida de dados sem a lentidão observada.