DROP SUBSCRIPTION
DROP SUBSCRIPTION — удалить подписку
Синтаксис
DROP SUBSCRIPTION [ IF EXISTS ] имя
[ CASCADE | RESTRICT ]
Описание
DROP SUBSCRIPTION
удаляет подписку из кластера баз данных.
Удалить подписку может только суперпользователь.
Команду DROP SUBSCRIPTION
нельзя выполнять в блоке транзакции, если подписка связана со слотом репликации. (Для освобождения слота можно использовать ALTER SUBSCRIPTION
.)
Параметры
имя
Имя подписки, подлежащей удалению.
CASCADE
RESTRICT
Эти ключевые слова игнорируются, так как от подписок не зависят никакие объекты.
Примечания
При удалении подписки, связанной со слотом репликации на удалённом узле (это типичная ситуация), команда DROP SUBSCRIPTION
подключится к удалённому узлу и попытается удалить слот репликации (и все остальные слоты синхронизации таблиц) в ходе этой операции. Это необходимо для освобождения ресурсов, выделенных для подписки на удалённом узле. Если при этом происходит сбой, либо из-за недоступности удалённого узла, либо из-за ошибки при удалении слота репликации, либо вообще из-за его отсутствия, команда DROP SUBSCRIPTION
прерывается. Для разрешения этой ситуации сначала отключите подписку, выполнив ALTER SUBSCRIPTION ... DISABLE
, а затем разорвите связь подписки с этим слотом репликации, выполнив команду ALTER SUBSCRIPTION ... SET (slot_name = NONE)
. После этого команда DROP SUBSCRIPTION
не будет пытаться выполнять какие-либо действия на удалённом узле. Заметьте, что если удалённый слот репликации фактически продолжает существовать, его (и все связанные слоты синхронизации таблиц) нужно будет удалить вручную; в противном случае для него и связанных слотов будет по-прежнему сохраняться WAL, что в конце концов может привести к переполнению диска. См. также Подраздел 29.2.1.
Если подписка связана со слотом репликации, команду DROP SUBSCRIPTION
нельзя выполнять внутри блока транзакции.
Примеры
Удаление подписки:
DROP SUBSCRIPTION mysub;
Совместимость
DROP SUBSCRIPTION
является расширением Postgres Pro.