8
Использование реплики
Допускаются
запросы на чтение данных (SELECT, COPY TO, курсоры)
установка параметров сервера (SET, RESET)
управление транзакциями (BEGIN, COMMIT, ROLLBACK...)
создание резервной копии (pg_basebackup)
Не допускаются
любые изменения (INSERT, UPDATE, DELETE, TRUNCATE, nextval...)
блокировки, предполагающие изменение (SELECT FOR UPDATE...)
команды DDL (CREATE, DROP...), в т. ч. создание временных таблиц
команды сопровождения (VACUUM, ANALYZE, REINDEX...)
управление доступом (GRANT, REVOKE...)
не срабатывают триггеры и рекомендательные блокировки
По умолчанию реплика работает в режиме горячего резерва,
в этом случае разрешены клиентские подключения, но только для
чтения данных. Также будет работать установка параметров сервера
и команды управления транзакциями — например, можно начать
(читающую) транзакцию с нужным уровнем изоляции.
Кроме того, реплику можно использовать и для изготовления
резервных копий (конечно, принимая во внимание возможное
отставание от мастера).
В режиме горячего резерва на реплике не допускаются никакие
изменения данных (включая последовательности), многие виды
блокировок, команды DDL, а также такие команды, как vacuum, analyze,
reindex и команды управления доступом — словом, все, что так или
иначе изменяет данные.
При необходимости реплику можно запустить в режиме теплого
резерва, задав параметр hot_standby = off, тогда подключения будут
вообще невозможны.