Administración de ranuras lógicas de RDS para PostgreSQL - Amazon Relational Database Service

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=...' PUBLICATION pubname 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 ser 1 para habilitar la replicación lógica

  • hot_standby_feedback debe ser 1 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 datos

    El valor predeterminado del parámetro es postgres. Si la instancia de publicación lógica tiene la base de datos de postgres, 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 ser 1 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.