Как удалить слот репликации в postgres 9.4

У меня есть слот репликации, который я хочу удалить, но когда я удаляю, у меня есть ошибка, которую я не могу удалить из вида. Есть идеи?

postgres=# SELECT * FROM pg_replication_slots ;
  slot_name   |    plugin    | slot_type | datoid | database | active | xmin | catalog_xmin | restart_lsn
--------------+--------------+-----------+--------+----------+--------+------+--------------+-------------
 bottledwater | bottledwater | logical   |  12141 | postgres | t      |      |       374036 | E/FE8D9010
(1 row)

postgres=# delete from pg_replication_slots;
ERROR:  cannot delete from view "pg_replication_slots"
DETAIL:  Views that do not select from a single table or view are not automatically updatable.
HINT:  To enable deleting from the view, provide an INSTEAD OF DELETE trigger or an unconditional ON DELETE DO INSTEAD rule.
postgres=#

1 ответов


использовать pg_drop_replication_slot:

select pg_drop_replication_slot('bottledwater');

посмотреть документы и этот блог.

слот репликации должен быть неактивен, т. е. нет активных соединений. Поэтому, если есть потоковая реплика, использующая слот, вы должны остановить потоковую реплику. Или вы можете изменить его recovery.conf поэтому он больше не использует слот и перезагрузить его.