- ベストアンサー
PostgreSQLバッチでバックアップ
- WindowsマシンからPostgreSQL 8.4のバックアップをバッチファイルで取得する方法について質問です。
- バッチファイルでのバックアップ実行時にパスワード入力の自動化方法を知りたいです。
- Linux上のPostgreSQLはSSL接続のみ許可されており、毎日バックアップする運用を想定しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
.pgpassで出来ると思います。詳しくはこちらを参照してください。 http://www.postgresql.jp/document/9.2/html/libpq-pgpass.html バックアップのトリガがクライアントというのが理解に苦しむのですが、サーバでcron動かしちゃダメなんでしょうか? しかもバックアップファイルがローカルに出来ちゃいますよね。 ビックデータになった場合、下手するとパンクしそうですが大丈夫なんでしょうか…。
その他の回答 (1)
- world99
- ベストアンサー率64% (20/31)
Windowsクライアントからバックアップするのではなく、 LinuxサーバでDBバックアップしてWindowsクライアントにダウンロードするという方法なら自動化できます。 しかし、私が携わったプロジェクトでは、サーバでバックアップしていましたが、自動化はしていませんでした。 その理由は、バックアップ前にハードディスクの空き容量を確認が必要だったからです。 シェルだけ用意しておいて、空き容量確認後にDBバックアップしていました。 バックアップは自動化してクライアントにダウンロード後にサーバから削除するなら、毎回サーバの空き容量を確認しなくてもいいので、サーバでのDBバックアップを自動化してもいいかもしれません。 私が携わったプロジェクトは月1回のバックアップだったのでサーバの空き容量確認が毎回必須でした。 1.Linux でDBバックアップ ・postgres の所有ユーザで pg_dump を実行する。 -h, -U といったオプション指定が不要になると思います。 2.WindowsクライアントにDBバックアップファイル取得 ・WinSCPとかを使ってLinuxサーバにあるDBバックアップファイルをWindowsクライアントにダウンロード ・サーバーのDBバックアップファイルを削除 手順は以上です。ご検討下さい。
お礼
ご回答有難うございます。 Linuxでバックアップし、Windowsにダウンロードすればバックアップを取得できる事は知っています。 Windowsから「自動で」バックアップを行う方法を知りたかったのです。
お礼
ご回答有難うございます。 バックアップ後のファイルはWindowsでやるので、 Linuxでバックアップ作成→ファイル転送まで自動化するなら 直接Windows上にバックアップを作った方が楽なのでは?と思った次第です。 ビッグデータ等を心配するような容量にはならないデータなので大丈夫です。 教えて頂いた.pgpassについて、試してみたいと思います。
補足
.pgpass(Windowsでは「pgpass.conf」)で、目的の処理を実行できました。 以下サイトに、Windowsでの設定方法がありました。 http://sfi.hamazo.tv/e1350560.html