Бармен 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-адрес.