設定伺服器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 位於亞馬遜的 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

如果您想要做的只是 pg_restore 目前SERVER_A運行的資料庫實例上的轉儲文件SERVER_B,那麼很簡單:

SERVER_A # cat dump_file | ssh SERVER_B pg_restore

(包括 pg_restore 的任何必要選項,但不指定檔案名稱。Perpostgres手冊, If [filename is] not specified, the standard input is used.)

(您也可以scp轉儲文件,然後使用 上的文件運行恢復SERVER_B,但上面的內容似乎更符合您運行腳本來SERVER_A完成所有操作的目標)。

相關內容