Linux

將伺服器 A 上的 Postgres 配置為 pg_restore 到伺服器 B(需要證書身份驗證)

  • August 23, 2012

我正在嘗試配置在 SERVER_A 上執行的 PostgreSQL 實例以連接到 SERVER_B 上的另一個 PostgreSQL 實例。我在 SERVER_A 上執行一個 shell 腳本,最終需要將 pg_restore 連接到駐留在 SERVER_B 上的數據庫上。

SERVER_B 在亞馬遜的 AWS 上。通常,要 ssh 進入機器,我會執行以下命令:

# ssh -i .ssh/server-dev.pem root@dev.hostname.com
[root@dev]# ssh -i .ssh/dev1mac 0.0.0.0

… Postgres 實例位於 0.0.0.0

誰能幫我解釋一下我將如何使用上述資訊在 SERVER_A 上配置 Postgres?我一直在研究 pg_hba.conf,但坦率地說,我以前從未這樣做過,從文件來看,我不清楚如何達到我想要的結果。是否有一種更簡單的方法可以讓我完全跳過配置 Postgres,而只需從我的 shell 腳本中執行一系列命令來實現恢復?

我會很感激任何幫助,謝謝!

如果您想要做的只是 pg_restore 目前在SERVER_A執行的數據庫實例上的轉儲文件,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)。

引用自:https://serverfault.com/questions/420484