質問: C#を使用し、リモートサーバーアクセスでPostgresqlのバックアップ、リストアを行いたいのですが、上手くいきません。 前回webシステムを作成した際、pg_dumpを使ってバックアップ、リストアを行ったのですが、その際はファイルをサーバーへ保管し、サーバーからバックアップファイルを取り出しリストアをしました。 しかし今回はクライアントサーバーシステムで、サーバー(Linux)でDBのバックアップを行い、クライアントにそのバックアップファイルを保存したいです。その後、クライアントからバックアップファイルを選択し、リストアを行いたいと思っています。 まず、このようなことは可能なのでしょうか?自分なりに調べてみた結果、ローカルでバックアップ、リストアを行っている例などは多くあったのですが、このようなリモートでバックアップ、リストアを行っている例をあまり見つけられなかったため質問させていただきます。
回答: できると思います。 pg_dumpで接続先を指定すれば、サーバで実行するときと同様に、クライアントでもpg_dumpの標準出力をバックアップファイルにリダイレクトできます。 実際に試したわけではありませんが、以下に使い方の説明があります。 【注意】SSH接続でサーバにログインし、サーバでpg_dumpを実行するのではなく、クライアント側でpg_dumpを実行するときにサーバのホスト名を指定します。 コメントをうけて追記しました。 リストアもクライアント側で実行します。 スクリプト形式でダンプしたのであれば、psqlでローカルのバックアップファイル(クライアント側)を標準出力に読み込ませればリストアできます。 アーカイブ形式でダンプしたのであればpg_restoreにローカルのバックアップファイルを指定すればよいです。