2

我正在使用 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

任何帮助将不胜感激

4

3 回答 3

3

输出包含两个错误,第barman check一个很关键:

  • PostgreSQL:失败

这意味着您的酒保用户无法使用您在conninfo参数中提供的凭据连接 PostgreSQL。

您可以通过成为酒保用户并执行 psql 将内容conninfo作为唯一参数传递来自己尝试(它需要在服务器上安装 PostgreSQL 客户端):

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

它必须连接到目标 PostgreSQL 服务器而不要求输入任何密码。

backup maximum age错误是正常的,因为您没有任何备份。但是,它不是阻塞的,因此它不会阻止您进行第一次备份。

于 2018-02-09T16:09:50.650 回答
0

现在这个问题已经解决了。

我通过确保 conninfo= 拥有所有正确信息解决了这个问题。(包括密码=字段)

于 2018-02-12T06:02:43.990 回答
0

postgresql-12-setup initdb我认为您从 PostgreSQL 中删除了您的酒保用户,或者您使用命令重新创建了该 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 文件。

于 2022-01-13T23:09:13.773 回答