Gerenciar sincronização de slots lógicos do RDS para PostgreSQL - Amazon Relational Database Service

Gerenciar sincronização de slots lógicos do RDS para PostgreSQL

A partir da comunidade PostgreSQL 17, um novo recurso para sincronizar automaticamente os slots de replicação lógica dos servidores primários para os servidores em espera foi introduzido por meio do parâmetro sync_replication_slots ou da função pg_sync_replication_slots() relacionada, que sincroniza manualmente os slots na execução.

Esses recursos estão disponíveis a partir do RDS para PostgreSQL 17. Uma configuração típica terá uma instância primária e sua réplica de leitura, bem como um assinante de replicação lógica para a primária.

Garanta que a assinatura seja criada com a opção de failover definida como verdadeira:

CREATE SUBSCRIPTION subname CONNECTION 'host=...' PUBLICATION pubname WITH (failover = true);

Isso cria um slot lógico no publicador com o failover habilitado.

postgres=> SELECT slot_name, slot_type, failover FROM pg_catalog.pg_replication_slots; slot_name | slot_type | failover -----------+-----------+---------- subname | logical | t (1 row)

Ao habilitar a sincronização de slots, todos os slots de replicação lógica de failover na primária são criados automaticamente nos standbys físicos e sincronizados periodicamente. Garante que os seguintes valores foram definidos por meio de grupos de parâmetros:

  • rds.logical_replication deve ser 1 para permitir a replicação lógica.

  • hot_standby_feedback deve ser 1 no standby.

  • rds.logical_slot_sync_dbname no standby deve ser definido como um nome de banco de dados válido.

    O valor padrão do parâmetro é postgres. Se a instância de publicação lógica tiver o banco de dados postgres, o parâmetro padrão não precisará ser alterado.

  • synchronized_standby_slots na primária deve ser configurado para o slot de replicação física do standby que deve ser sincronizado.

  • sync_replication_slots deve ser 1 para habilitar a sincronização automática.

Com um slot de assinatura habilitado para failover e os valores dos parâmetros acima, quando um standby é promovido, o assinante pode alterar sua assinatura dessa instância recém-promovida e continuar a replicação lógica sem problemas.