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=...' PUBLICATIONpubname
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 ser1
para permitir a replicação lógica. -
hot_standby_feedback
deve ser1
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 dadospostgres
, 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 ser1
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.