配置服务器 A 上的 Postgres 将 pg_restore 到服务器 B 上(需要证书认证)

配置服务器 A 上的 Postgres 将 pg_restore 到服务器 B 上(需要证书认证)

我正在尝试配置在 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完成所有操作)。

相关内容