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 SUBSCRIPTIONsubnameCONNECTION 'host=...' PUBLICATIONpubnameWITH (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_replicationdebe ser1para habilitar la replicación lógica -
hot_standby_feedbackdebe ser1en la instancia en espera -
Debe establecerse
rds.logical_slot_sync_dbnameen 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_slotsen la instancia principal en la ranura de replicación física de la instancia en espera destinada a sincronizarse -
sync_replication_slotsdebe ser1para 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.