我想从另一台服务器备份我的 PostgreSQL 数据库集群。我正在使用来自另一台服务器的以下命令:
[root@shiwangini2 pgsql]# sudo -u postgres pg_basebackup -h 192.168.XX.XX -p 5432 -Ft -D /var/lib/pgsql/db_file_backup
但是,运行此命令后我收到以下消息:
[root@shiwangini2 pgsql]# sudo -u postgres pg_basebackup -h
192.168.XX.XX -p 5432 -Ft -D /var/lib/pgsql/db_file_backup
Password:
pg_basebackup:无法从服务器获取预写日志结束位置:错误:无法打开文件“./pg_hba.conf”:权限被拒绝 pg_basebackup:删除数据目录“/var/lib/pgsql/db_file_backup”的内容
为了解决这个问题,在谷歌搜索后,我更新了服务器的 pg_hba.conf 文件,如下所示,以允许来自外部的连接:
host all all 0.0.0.0/0
md5
host all all ::/0 md5
之后我重新启动了 PotgreSQL 服务。同样,当我尝试从另一台服务器备份它时,我仍然遇到同样的错误。如果我在这里做错了什么,请告诉我。或任何其他方式从另一台服务器获取备份。
文件上设置的权限是什么
pg_hba.conf
?postgres 用户是否有能力阅读它?
这是我的配置:
为了修复这类错误,首先我从另一台服务器获得了允许的连接,然后我错误地意识到,我用“root”用户登录更新了 pg_hba.conf 文件。后来,我用“ postgres”用户,然后问题得到解决。