web-dev-qa-db-ja.com

postgresの自動バックアップ

LinuxでPostgresデータベースを毎日自動的にバックアップする最良の方法は何ですか?

20
Liam

次のようにpg_dumpを使用できます。

$ pg_dump -h db_Host -U user_name db_name > dump_file.sql

最初に、接続にパスワードが必要な場合に使用されるパスワードを含む .pgpass ファイルを設定することを考えてください。このファイルには、次の形式の行が含まれている必要があります。

hostname:port:database:username:password

また、最初の4つのフィールドはそれぞれ、リテラル値または*であり、すべてに一致します。例:*:*:*:postgres:pg_password

この.pgpassファイルは、ホームディレクトリ〜/に存在する必要があり、このファイルへのアクセス許可は、ワールドまたはグループへのアクセスを禁止する必要があります。コマンドchmod 0600 ~/.pgpassでこれを実現します。

11
Ali Mezgani

Cronからpg_dumpallを実行します。

12
Bill Weiss

AutoPostgreSQLBackup を試してください。これは単一のスクリプトファイルであり、ニーズに合わせて簡単に構成でき、毎日、毎週、毎月のスケジュール設定、メールごとのログ、ログファイルまたは標準出力などを行います。

6
user1686

それが適度に小さいデータベースで、1日1回のようにバックアップの要件が低い場合は、cronからpg_dumpを実行してローカルファイルにダンプし、マシン上のファイルをバックアップする必要があるものを使用して、ダンプをアーカイブします。 。

4
Magnus Hagander

pg_rman は、PostgreSQL 8.4以降で機能する増分バックアップを提供する新しいツールです。

4
Adam Matan

astrails-safe を試してください。 mysql(mysqldump)、postgres(pg_dump)、または暗号化されたプレーンファイル(tar)(gnupg)をバックアップし、S3/Sftpにアップロードする方法を知っています。

2
Vitaly Kushner

pg_dumpは優れたソリューションですが、大量のデータをバックアップしようとしている場合は、おそらくこれが役立ちます。

http://www.postgresql.org/docs/8.1/static/backup-online.html

これは実際には一種の「生の」ロギングですが、増分バックアップ方法として役立ちます...

1
Javier Novoa C.

これは、各データベースを個別にバックアップするスクリプトです。また、忘れがちですが重要なPostgreSQL GLOBALSとユーザーログイン情報もバックアップします。

これの重要性は、pg_dumpallが提供しない圧縮と、pg_dumpが無視する忘れられたデータを利用することです。

これには、ここで説明されているpgpassまたは同様の設定が必要です http://wiki.postgresql.org/wiki/Pgpass

これはOSXの設定ですが、プログラムのパスを変更するだけで問題なく動作します。

/ sqlbackupsにバックアップします。スクリプトはディレクトリサイズ/ディレクトリを返し、失敗した場合にゼロ以外のステータスを返すブレークポイントがあります。 pgAgentと組み合わせて毎日のバックアップを行いました。

スクリプトは編集されました、申し訳ありません:(

1
Silverfire

barman を使用してポイントインタイムリカバリを簡単に実行できるのに、なぜ毎日のバックアップで落ち着くのですか?

1

他の人が言ったように:pg_dumpall。

また、ログ配布もご覧ください。その後、再生できるより多くのポイントインタイムバックアップを取得できます。 http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html

または、マニュアルのバックアップに関するセクションはどうですか?

http://www.postgresql.org/docs/8.3/static/backup.html

0
Thomas