Бармен PostgreSQL: не удалось

Я нахожусь в процессе настройки системы резервного копирования базы данных с помощью Barman.

Моя база данных - это база данных postgreSQL.

Когда я бегу

бармен чек майн-дб

Я получаю следующую ошибку:

        PostgreSQL: FAILED
        directories: OK
        retention policy settings: OK
        backup maximum age: FAILED (interval provided: 1 day, latest backup age: No available backups)
        compression settings: OK
        minimum redundancy requirements: OK (have 0 backups, expected at least 0)
        ssh: OK (PostgreSQL server)
        not in recovery: OK

Код, который я использую в моем barman.conf:

ssh_command = ssh postgres@10.0.0.XX

conninfo = host=10.0.0.XX user=YYYYYYY dbname=ZZZZZZZZ

retention_policy_mode = auto
retention_policy = RECOVERY WINDOW OF 7 days
wal_retention_policy = main

Любая помощь будет принята с благодарностью

3 ответа

barman check вывод содержит две ошибки, первая из которых критическая:

  • PostgreSQL: СБОЙ

Это означает, что ваш пользователь-бармен не может подключиться к PostgreSQL, используя учетные данные, которые вы указали в conninfo параметр.

Вы можете попробовать это сами, став пользователем бармена и выполнив psql, передав содержимое conninfo в качестве единственного аргумента (для этого требуются клиенты PostgreSQL, установленные на сервере):

psql 'host=10.0.0.XX user=YYYYYYY dbname=ZZZZZZZZ'

Он должен подключаться к целевым серверам PostgreSQL без запроса пароля.

backup maximum age ошибка нормальная, потому что у вас нет резервной копии. Тем не менее, он не является блокирующим, поэтому он не помешает вам сделать первую резервную копию.

Эта проблема теперь решена.

Я решил эту проблему, убедившись, что conninfo= имеет всю правильную информацию. (Включая пароль = поле)

Я думаю, вы удалили своего пользователя barman из PostgreSQL или воссоздали этот кластер PostgreSQL, используя postgresql-12-setup initdbкоманда. Либо вы восстанавливаетесь из старой резервной копии, либо можете выполнить следующие шаги.

      postgres@pg$ createuser -s -P barman

postgres@pg$ psql

GRANT EXECUTE ON FUNCTION pg_start_backup(text, boolean, boolean) to barman;
GRANT EXECUTE ON FUNCTION pg_stop_backup() to barman;
GRANT EXECUTE ON FUNCTION pg_stop_backup(boolean, boolean) to barman;
GRANT EXECUTE ON FUNCTION pg_switch_wal() to barman;
GRANT EXECUTE ON FUNCTION pg_create_restore_point(text) to barman;
GRANT pg_read_all_settings TO barman;
GRANT pg_read_all_stats TO barman;

Для потокового резервного копирования необходимо создать потоковое соединение.

      postgres@pg$ createuser -P --replication streaming_barman

Затем обновите файл pg_hba.conf, указав предоставленный вам IP-адрес.

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