Как можно очистить архив WAL при использовании потоковой репликации Postgres Master-Slave?

Как удалить файлы размером 21 ГБ из архива wal (/var/lib/pgpro/1c-16/archive) в PostgreSQL?
  • 13 февраля 2024 г. 13:18
Ответы на вопрос 2
Для очистки архива WAL в Postgres при использовании потоковой репликации Master-Slave, можно воспользоваться следующими шагами:

1. Убедитесь, что все WAL-файлы, которые вы хотите удалить, уже были применены на слейве и он находится в актуальном состоянии. Можно проверить это, выполнить запрос `SELECT pg_last_xlog_receive_location()` на слейве и сравнить его со значением `pg_last_xlog_replay_location()` на мастере.

2. Остановите слейв (Postgres сервер) для предотвращения его использования файлов из архива WAL во время удаления.

3. Удалите файлы размером 21 ГБ из архива WAL (/var/lib/pgpro/1c-16/archive). Вы можете воспользоваться командой `rm` в Linux для удаления файлов. Например, выполните команду `rm /var/lib/pgpro/1c-16/archive/wal_file_name`, чтобы удалить конкретный файл.

4. Запустите слейв (Postgres сервер) снова, чтобы он продолжил репликацию с мастера.

После выполнения этих шагов, файлы размером 21 ГБ должны быть успешно удалены из архива WAL в PostgreSQL.
Нафиг вам вообще archive_command, если нужна только потоковая репликация? 

Архив wal - это когда нужен point in time recovery либо особые случаи file shipping репликации (например, нужна реплика где-то без возможности подключиться к мастеру по сети)
Похожие вопросы