×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.31. ALTER SUBSCRIPTION

6.1.31. ALTER SUBSCRIPTION

ALTER SUBSCRIPTION — изменение определения подписки

Синтаксис

ALTER SUBSCRIPTION name CONNECTION 'conninfo'
ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name ADD PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name DROP PUBLICATION publication_name [, ...] [ WITH ( publication_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name ENABLE
ALTER SUBSCRIPTION name DISABLE
ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] )
ALTER SUBSCRIPTION name SKIP ( skip_option = value )
ALTER SUBSCRIPTION name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER SUBSCRIPTION name RENAME TO new_name

Описание

Команда ALTER SUBSCRIPTION может изменять большинство свойств подписки, которые могут быть заданы в CREATE SUBSCRIPTION.

Чтобы использовать ALTER SUBSCRIPTION, вы должны быть владельцем подписки. Чтобы переименовать подписку или изменить её владельца, вы должны иметь право CREATE в базе данных. Кроме того, чтобы изменить владельца, вы должны иметь возможность выполнить SET ROLE для новой роли-владельца. Если у подписки установлен параметр password_required=false, только суперпользователи могут её изменять.

При обновлении публикации мы удаляем отношения, которые больше не являются частью публикации, а также удаляем слоты синхронизации таблиц, если они есть. Необходимо удалить эти слоты, чтобы освободить ресурсы, выделенные для подписки на удалённом хосте. Если из-за сетевого сбоя или другой ошибки Digital Q.DataBase не может удалить слоты, будет сообщена ошибка. Чтобы продолжить в этой ситуации, пользователь должен либо повторить операцию, либо отвязать слот от подписки и удалить подписку, как описано в DROP SUBSCRIPTION.

Команды ALTER SUBSCRIPTION ... REFRESH PUBLICATION, ALTER SUBSCRIPTION ... {SET|ADD|DROP} PUBLICATION ... с опцией refresh, установленной в true, и ALTER SUBSCRIPTION ... SET (failover = true|false) не могут быть выполнены внутри блока транзакции.

Команды ALTER SUBSCRIPTION ... REFRESH PUBLICATION и ALTER SUBSCRIPTION ... {SET|ADD|DROP} PUBLICATION ... с опцией refresh, установленной в true, также не могут быть выполнены, когда у подписки включена поддержка two_phase commit, если только copy_data не равно false. См. столбец subtwophasestate в pg_subscription, чтобы узнать фактическое состояние двухфазной фиксации.

Параметры

name #

Имя подписки, свойства которой нужно изменить.

CONNECTION 'conninfo' #

Это предложение заменяет строку подключения, изначально установленную командой CREATE SUBSCRIPTION. Дополнительную информацию см. там.

SET PUBLICATION publication_name
ADD PUBLICATION publication_name
DROP PUBLICATION publication_name #

Эти формы изменяют список подписанных публикаций. SET заменяет весь список публикаций новым списком, ADD добавляет дополнительные публикации в список публикаций, а DROP удаляет публикации из списка. Мы разрешаем указывать несуществующие публикации в вариантах ADD и SET, чтобы пользователи могли добавить их позже. Дополнительную информацию см. в CREATE SUBSCRIPTION. По умолчанию эта команда также действует как REFRESH PUBLICATION.

publication_option задаёт дополнительные опции для этой операции. Поддерживаемые опции:

refresh (boolean)

Если false, команда не будет пытаться обновить информацию о таблицах. REFRESH PUBLICATION затем следует выполнить отдельно. Значение по умолчанию — true.

Дополнительно могут быть указаны опции, описанные в разделе REFRESH PUBLICATION, для управления неявной операцией обновления.

REFRESH PUBLICATION #

Получить недостающую информацию о таблицах от издателя. Это запустит репликацию таблиц, которые были добавлены в подписанные публикации с момента выполнения CREATE SUBSCRIPTION или последнего вызова REFRESH PUBLICATION.

refresh_option задаёт дополнительные опции для операции обновления. Поддерживаемые опции:

copy_data (boolean)

Указывает, копировать ли уже существующие данные в публикациях, на которые происходит подписка, при запуске репликации. Значение по умолчанию — true.

Ранее подписанные таблицы не копируются, даже если предложение фильтра строк WHERE таблицы было изменено.

См. Notes для подробностей о том, как copy_data = true может взаимодействовать с параметром origin.

См. параметр binary команды CREATE SUBSCRIPTION для подробностей о копировании уже существующих данных в бинарном формате.

ENABLE #

Включает ранее отключённую подписку, запуская процесс логической репликации в конце транзакции.

DISABLE #

Отключает работающую подписку, останавливая процесс логической репликации в конце транзакции.

SET ( subscription_parameter [= value] [, ... ] ) #

Это предложение изменяет параметры, изначально заданные командой CREATE SUBSCRIPTION. Дополнительную информацию см. там. Параметры, которые можно изменить: slot_name, synchronous_commit, binary, streaming, disable_on_error, password_required, run_as_owner, origin и failover. Только суперпользователь может установить password_required = false.

При изменении параметра slot_name, значения свойств failover и two_phase указанного слота могут отличаться от соответствующих параметров подписки failover и two_phase. При создании слота убедитесь, что свойства слота failover и two_phase соответствуют соответствующим параметрам подписки. В противном случае слот на издателе может вести себя не так, как ожидается от этих опций подписки: например, слот на издателе может синхронизироваться со стенд-бай, даже если опция подписки failover отключена, или может быть отключён от синхронизации, даже если опция подписки failover включена.

SKIP ( skip_option = value ) #

Пропускает применение всех изменений удалённой транзакции. Если входящие данные нарушают какие-либо ограничения, логическая репликация остановится до их разрешения. Используя команду ALTER SUBSCRIPTION ... SKIP, процесс логической репликации пропускает все изменения данных в транзакции. Эта опция не влияет на транзакции, которые уже подготовлены (prepared) при включении two_phase на стороне подписчика. После того как процесс логической репликации успешно пропустит транзакцию или завершит транзакцию, LSN (хранится в pg_subscription.subskiplsn) очищается. См. Раздел 3.14.6 для подробностей о конфликтах логической репликации.

skip_option задаёт опции для этой операции. Поддерживаемая опция:

lsn (pg_lsn)

Указывает финальный LSN удалённой транзакции, изменения которой должны быть пропущены процессом логической репликации. Финальный LSN — это LSN, на котором транзакция либо зафиксирована, либо подготовлена. Пропуск отдельных подтранзакций не поддерживается. Установка NONE сбрасывает LSN.

new_owner #

Имя пользователя нового владельца подписки.

new_name #

Новое имя для подписки.

При указании параметра типа boolean, часть = value может быть опущена, что эквивалентно указанию TRUE.

Примеры

Изменить публикацию, на которую подписана подписка, на insert_only:

ALTER SUBSCRIPTION mysub SET PUBLICATION insert_only;

Отключить (остановить) подписку:

ALTER SUBSCRIPTION mysub DISABLE;

Совместимость

Команда ALTER SUBSCRIPTION является расширением Digital Q.DataBase.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению