Listar y eliminar los slots correspondientes a las réplicas que se han generado en Postgresql

Categorías:

Si queremos ver el listado de slots correspondientes a las replicaciones que tengamos configuradas en nuestro motor primario de postgres, ejecutamos el comando

select slot_name, slot_type, database, active, catalog_xmin, restart_lsn, confirmed_flush_lsn from pg_replication_slots ;

edb=# select slot_name, slot_type, database, active, catalog_xmin, restart_lsn, confirmed_flush_lsn from pg_replication_slots ;
 slot_name | slot_type | database | active | catalog_xmin |  restart_lsn  | confirmed_flush_lsn 
-----------+-----------+----------+--------+--------------+---------------+---------------------
 replica_1 | physical  |          | f      |              | 30CD/15000000 | 
 replica_2 | physical  |          | f      |              | 30D0/7000000  | 
 replica_3 | physical  |          | f      |              | 3332/4B0DEF60 | 
 replica_5 | physical  |          | f      |              | 338F/8A3AC6B0 | 
 replica_6 | physical  |          | t      |              | 338F/8A598CF8 | 
(5 filas)

edb=#

Con ello podemos observar cuales slots se está usando y cuales no. En este caso la replica_6 se encuentra activa. El resto están inactivas, posiblemente no se usen o haya algún problema con ellas.

 

Cuando deseemos eliminar alguna de ellas, ejecutamos el siguiente comando desde el prompt de postgresql

SELECT pg_drop_replication_slot (‘replica_1’);

edb=# SELECT pg_drop_replication_slot ('replica_1');
 pg_drop_replication_slot 
--------------------------
 
(1 fila)

edb=#

Verificamos que se haya eliminado con el comando que ya conocemos

select slot_name, slot_type, database, active, catalog_xmin, restart_lsn, confirmed_flush_lsn from pg_replication_slots ;

edb=# SELECT * FROM pg_replication_slots ;
 slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin |  restart_lsn  | confirmed_flush_lsn 
-----------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+---------------+---------------------
 replica_2 |        | physical  |        |          | f         | f      |            |      |              | 30D0/7000000  | 
 replica_3 |        | physical  |        |          | f         | f      |            |      |              | 3332/4B0DEF60 | 
 replica_5 |        | physical  |        |          | f         | f      |            |      |              | 338F/8A3AC6B0 | 
 replica_6 |        | physical  |        |          | f         | t      |    2653479 |      |              | 338F/8BF1BAC0 | 
(4 filas)

edb=#

Y eso es todo.