我正在尝试配置在 SERVER_A 上运行的 PostgreSQL 实例以连接到 SERVER_B 上的另一个 PostgreSQL 实例。我在 SERVER_A 上运行一个 shell 脚本,该脚本最终需要连接并执行 pg_restore 到驻留在 SERVER_B 上的数据库。
SERVER_B 位于 Amazon 的 AWS 上。通常,要通过 ssh 进入该机器,我会运行以下命令:
# ssh -i .ssh/server-dev.pem [email protected]
[root@dev]# ssh -i .ssh/dev1mac 0.0.0.0
...Postgres 实例位于 0.0.0.0
有人能帮我解释一下如何使用上述信息在 SERVER_A 上配置 Postgres 吗?我一直在研究 pg_hba.conf,但坦率地说,我以前从未这样做过,而且从文档来看,我不清楚如何实现我想要的结果。有没有更简单的方法可以让我完全跳过配置 Postgres,而是只需从我的 shell 脚本运行一系列命令即可实现恢复?
我将非常感激您的帮助,谢谢!
答案1
如果您想要做的只是将当前SERVER_A
正在运行的数据库实例上的转储文件 pg_restore 起来SERVER_B
,这很容易:
SERVER_A # cat dump_file | ssh SERVER_B pg_restore
(包括 pg_restore 所需的任何选项,但不指定文件名。每postgres 手册,If [filename is] not specified, the standard input is used.
)
(您也可以scp
转储文件,然后使用文件运行还原SERVER_B
,但上述操作似乎更符合您的目标,即运行一个脚本来SERVER_A
完成所有操作)。