サーバー A の Postgres をサーバー B に pg_restore するように設定する (証明書認証が必要)

サーバー A の Postgres をサーバー B に pg_restore するように設定する (証明書認証が必要)

SERVER_A で実行されている PostgreSQL インスタンスを、SERVER_B にある別の PostgreSQL インスタンスに接続するように設定しようとしています。SERVER_A でシェル スクリプトを実行していますが、最終的には SERVER_B にあるデータベースに接続して pg_restore を実行する必要があります。

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 の構成を完全にスキップし、代わりにシェル スクリプトから一連のコマンドを実行して復元を実現する、より簡単な方法があるでしょうか?

何か助けていただければ幸いです、ありがとうございます!

答え1

SERVER_A実行中の DB インスタンスに現在あるダンプ ファイルを 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が、 ですべてを実行する 1 つのスクリプトを実行するという目標には、上記の方法の方が合っているようですSERVER_A)。

関連情報