14
Протокол репликации
Протокол
получение потока журнальных записей
команды управления резервным копированием и репликацией
Обслуживается процессом wal_sender
Параметр wal_level = replica
Слот репликации
серверный объект для получения журнальных записей
помнит, какая запись была считана последней
сегмент WAL не удаляется, пока он полностью не прочитан через слот
Чтобы сохранить все необходимые для восстановления файлы WAL,
сгенерированные сервером за время копирования файлов, утилита
подключается к серверу по специальному протоколу репликации.
Несмотря на название, это протокол используется не только для
репликации (о которой пойдет речь в следующей теме), но и для
резервного копирования. Протокол позволяет получать поток
журнальных записей параллельно с копированием файлом.
Чтобы сервер не удалил необходимые файлы WAL преждевременно,
может использоваться слот репликации.
Для того, чтобы подключение было возможно, необходим ряд настроек.
Во-первых, роль должна обладать атрибутом REPLICATION (или быть
суперпользователем). Кроме того, этой роли должно быть выдано
разрешение в конфигурационном файле pg_hba.conf.
Во-вторых, параметр max_wal_senders должен быть установлен
в достаточно большое значение. Этот параметр ограничивает число
одновременно работающих процессов wal_sender, обслуживающих
подключения по протоколу репликации.
В-третьих, параметр wal_level, определяющий количество информации
в журнале, должен быть установлен в значение replica.
Начиная с версии 10, настройки по умолчанию уже включают все эти
требования (при локальном подключении).