我正在使用Barman设置数据库备份系统。
我的数据库是PostgreSQL DB。
我运行
Barman检查主-DB
我有以下错误:
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
任何帮助将不胜感激
barman check
输出包含两个错误,第一个错误是至关重要的:
- PostgreSQL:失败
这意味着您的Barman用户无法使用您在conninfo
参数中提供的凭据与PostgreSQL连接。
您可以通过成为Barman用户并执行conninfo
的内容作为唯一的参数来尝试自己尝试(它需要服务器上安装的PostgreSQL客户端(:
psql 'host=10.0.0.XX user=YYYYYYY dbname=ZZZZZZZZ'
它必须在不要求任何密码的情况下连接到目标PostgreSQL服务器。
backup maximum age
错误是正常的,因为您没有任何备份。但是,它不是阻止的,因此不会阻止您进行第一次备份。
现已解决此问题。
我通过确保Conninfo =具有所有正确的信息来解决此问题。(包括密码=字段(
我认为您从PostgreSQL中删除了Barman用户,或者使用postgresql-12-setup initdb
命令重新创建了该PostgreSQL群集。您要么从旧备份中恢复过来,要么可以按照以下步骤进行操作。
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
下一个使用您的IP地址更新您的pg_hba.conf文件。