PostgreSQL master slave репликация

В данной статье будет рассмотренно создания мастера и двух слейвов. У PostgreSQL репликации; мастер слейв (а именно она поддерживает из коробки без сторонних решений) есть несколько ограничений, например:


  • реплицируется весь сервер, а не отдельные БД как можно делать в MySQL

  • по умолчанию она асихронная

  • репликация возможно только между мажорными версиями

Начем настройку с мастера



#master должен быть доступен по сети для slave

#listen_addresses может принимать несколько значений (через запятую)

#можно поставить * - postgres будет доступен на всех сетевых интерфейсах

listen_addresses = '*'

#режим хранения WAL-сегментов. Для репликации – только replica

wal_level = replica

#максимальное количство wal_sender.

#это максимум slave-ов, который сможет подключится к этому серверу

max_wal_senders = 2

#сколько заполненных WAL-сегментов хранить на мастере перед удалением

#число можно подобрать только экспериментально (больше изменений – больше WAL надо хранить)

wal_keep_segments = 128

#папка для архива. Удаленный WAL-сегмент будет скопирован туда

#архивом можно пользоваться для восстановления slave, если slave не успел выкачать WAL с мастера, а мастер его уже удалил

#там должно быть много места – сам postgres не будет чистить свой архив

archive_mode = on

archive_command = 'cp %p /var/lib/pg-archive/%f'


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



#TYPE   DB             USER           ADDRESS        #METHOD

host    replication    replication    0.0.0.0/0    scram-sha-256

Выключаем slave, копируем данные с прода


pg_basebackup --host=pg-master --username=replication --wal-method=stream --write-recovery-conf -D /var/lib/postgresql/16/main



Запускаем сервер, что бы проверить что идёт репликация можно запустить команду

select * from pg_stat_replication;


psql# \l+

Корпоративный почтовый сервер на минималках (postfix + dovecot + freeipa)

Postfix — агент передачи почты (MTA — mail transfer agent). Postfix является свободным программным обеспечением, создавался как альтернатива Sendmail.
Изначально Postfix …

bitrix24 + nginx + php-fpm

Битрикс шмитрикс, та еще головная боль. Но бизнес требует что бы проект был на битриксе, а ставить их битриксвм у …

Настрока фаервола nftables

nftables — подсистема ядра Linux, обеспечивающая фильтрацию и классификацию сетевых пакетов/датаграмм/кадров. Включена в ядро Linux, начиная с версии 3.13, выпущенной …

PostgreSQL master slave репликация