Postgres потоковая репликация Master-Slame как очиcтить архив wal?
День добрый настроена потоковая репликация Master (192.168.250.182) - Slave (192.168.250.184)
Необходимые условия - на обоих серваках должен быть PG 1-й и той же версии
Настройки на master
1) Создаем пользака для репликации (из под пользака postgres)
sudo -i -u postgres
createuser --replication -P rep_user
2) Правим postgresql.conf добавляем следующие параметры (каталог для храниен wall archive создаем в /var/lib/pgpro/1c-16
из под пользака postgres )
archive_mode = on
archive_command = 'cp %p /var/lib/pgpro/1c-16/archive/%f'
max_wal_senders = 10
max_wall_size=4GB
wal_keep_size=3GB
wal_level = replica
wal_log_hints = on
pg_archivecleanup /var/lib/pgpro/1c-16/archive %r
3)Правим hba.conf
Добавяылем в конец (пред последняя строка)
host replication rep_user 192.168.250.184/32 md5
host all all 0.0.0.0/0 md5
Slave
Ocтанавливаем службу postgres, удаляем каталог data целиком.
Затем заупскаем репликацию data с мастера pg_basebackup
от пользака postgres
pg_basebackup -R -h 192.168.250.182 -U rep_user -D /var/lib/pgpro/1c-16/data -P
По заверщшению стартуем сервак
Вопрос в следующем - в архиве wal (/var/lib/pgpro/1c-16/archive) лежит файлов размером 21 ГБ.
Подскажите как их корректно удалить ?
Нафиг вам вообще archive_command, если нужна только потоковая репликация?
Архив wal - это когда нужен point in time recovery либо особые случаи file shipping репликации (например, нужна реплика где-то без возможности подключиться к мастеру по сети)
Собственно пробую без archive_command = 'cp %p /var/lib/pgpro/1c-16/archive/%f'
Гружу на мастер базу из dt (2гб сам база 15 гб) репликация на salve проходит все ок .
На мастере в каталоге data\pg_wall - появляется куча wal с общим размером в 17 гб.
Собственно вопрос что с этим делать , не совсем понимаю?
Еще один репликация прошла , вижу активный процесс репликации на мастере
ПРавильно ли я понимаю - он теперь будет висеть постоянно ?
нужно либо выключить archive_mode либо указать archive_command в любую команду возвращающую true. /bin/true например. Включенный archive_mode при пустой archive_command это ошибка конфигурации, при которой база не будет удалять старые WAL вообще, предполагая что администратор исправит archive_command позже.
да, в pg_stat_activity walsender'ы тоже отображаются.