![pg_basebackup 自动密码](https://linux22.com/image/648551/pg_basebackup%20%E8%87%AA%E5%8A%A8%E5%AF%86%E7%A0%81.png)
我有一个主数据库和从数据库设置。主数据库位于安全网络上,并且只允许 postgres 端口通过从数据库服务器。
数据库需要保护,只有管理员才有数据库密码。服务器也位于远程站点,管理员如果不亲自到现场就无法访问。
我发现,如果两者之间的连接中断一段时间,从属数据库就会损坏/不同步。我编写了一个脚本来重新同步从属数据库,但我面临的问题是,一旦 pg_basebackup 运行,它就会提示输入密码。我需要一种简单的方法将密码传递给 pg_basebackup 命令。
sudo -u postgres pg_basebackup -h <masterDB-IP> -D /var/lib/pgsql/9.3/data -U rep -v -P
有什么建议么?
答案1
您可以使用.pgpass
文件作为解释这里。当然,你需要确保该文件不是所有人都可读的,以保护你的密码。
另一个选择是使用一些受信任的用户。您可以创建一个特定的系统用户(没有登录密码),并使用配置文件trust
中仅来自受信任 IP 的方法授予远程数据库服务器上的权限pg_hba.conf
。您不需要传递任何密码。您只需要保护此帐户,这可以通过不设置任何密码来完成。只有 root 用户可以su
向此用户执行命令或配置 cron 作业。