Архив WAL: FAILED (убедитесь, что настроена доставка WAL)

Я пытаюсь настроить Barman для резервного копирования. Когда я делаю barman check replica Я продолжаю получать:

Server replica:
WAL archive: FAILED (please make sure WAL shipping is setup)
PostgreSQL: OK
superuser: OK
wal_level: OK
directories: OK
retention policy settings: OK
backup maximum age: FAILED (interval provided: 1 day, latest backup age: No available backups)
compression settings: OK
failed backups: OK (there are 0 failed backups)
minimum redundancy requirements: FAILED (have 0 backups, expected at least 2)
ssh: OK (PostgreSQL server)
not in recovery: FAILED (cannot perform exclusive backup on a standby)
archive_mode: OK
archive_command: OK
continuous archiving: OK
archiver errors: OK

Я использую Postgresql 9.6 и бармена 2.1; Я не уверен, в чем проблема, кто-то может помочь? Вот моя конфигурация сервера Barman:

description = "Database backup"
conninfo = host=<db-ip> user=postgres dbname=db
backup_method = rsync
ssh_command = ssh postgres@<db-ip>
archiver = on

1 ответ

Решение

barman check пытается подтвердить, что архивация настроена правильно, утверждая, что в архиве что-то есть. Однако сегменты WAL, как правило, архивируются только после заполнения, и если ваш сервер не используется, это никогда не произойдет.

Чтобы обойти это, Barman предоставляет команду для принудительного переключения сегмента, ожидания появления завершенного WAL и немедленного архивирования:

barman switch-xlog --force --archive replica

вкратце

Барменов incoming_wals_directory и Postgresql.conf's archive_command не соответствует описанному здесь подробно

подробности

Другая причина заключается в том, что

  • Барменов incoming_wals_directory
  • postgresql.conf-х archive_command

Bash утилита для проверки

barman@backup $ barman show-server pg | grep incoming_wals_directory
# output1
# > incoming_wals_directory: /var/lib/barman/pg/incoming

postgres@pg $ cat /etc/postgresql/10/main/postgresql.conf | grep archive_command
# output2
# > archive_command = 'rsync -a  %p  barman@staging:/var/lib/barman/pg/incoming/%f' 

У нас должен быть один и тот же путь в:output1 и:output2

Сделайте их подходящими, если они этого не делают, и не забудьте потом перезапустить postgres.

Другие вопросы по тегам