Administración de ranuras lógicas de RDS para PostgreSQL
A partir de la versión 17 de Community PostgreSQL, se ha introducido una nueva característica para sincronizar automáticamente las ranuras de replicación lógica de los servidores principales a los servidores en espera mediante el parámetro sync_replication_slots
o la función relacionada pg_sync_replication_slots()
, que sincroniza manualmente las ranuras durante la ejecución.
Estas características están disponibles a partir de la versión 17 de RDS para PostgreSQL. Una configuración típica tendrá una instancia principal y su réplica de lectura, así como un suscriptor de replicación lógica a la principal.
Asegúrese de que la suscripción se cree con la opción de conmutación por error establecida en true:
CREATE SUBSCRIPTION
subname
CONNECTION 'host=...' PUBLICATIONpubname
WITH (failover = true);
Esto crea una ranura lógica en el publicador con la conmutación por error habilitada.
postgres=> SELECT slot_name, slot_type, failover FROM pg_catalog.pg_replication_slots; slot_name | slot_type | failover -----------+-----------+---------- subname | logical | t (1 row)
Al habilitar la sincronización de ranuras, todas las ranuras de replicación lógica de conmutación por error del servidor principal se crean automáticamente en los servidores físicos y en espera y se sincronizan de forma periódica. Asegúrese de que se hayan establecido los siguientes valores mediante grupos de parámetros:
-
rds.logical_replication
debe ser1
para habilitar la replicación lógica -
hot_standby_feedback
debe ser1
en la instancia en espera -
Debe establecerse
rds.logical_slot_sync_dbname
en la instancia en espera en un nombre válido de base de datosEl valor predeterminado del parámetro es
postgres
. Si la instancia de publicación lógica tiene la base de datos depostgres
, no es necesario cambiar el parámetro predeterminado. -
Debe establecerse
synchronized_standby_slots
en la instancia principal en la ranura de replicación física de la instancia en espera destinada a sincronizarse -
sync_replication_slots
debe ser1
para habilitar la sincronización automática
Con una ranura de suscripción habilitada para la conmutación por error y los valores de parámetros anteriores, cuando se promociona una instancia en espera, el suscriptor puede modificar su suscripción a la instancia recién promovida y continuar con la replicación lógica sin problemas.