LinuxでPostgresデータベースを毎日自動的にバックアップする最良の方法は何ですか?
次のように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
でこれを実現します。
Cronからpg_dumpallを実行します。
AutoPostgreSQLBackup を試してください。これは単一のスクリプトファイルであり、ニーズに合わせて簡単に構成でき、毎日、毎週、毎月のスケジュール設定、メールごとのログ、ログファイルまたは標準出力などを行います。
それが適度に小さいデータベースで、1日1回のようにバックアップの要件が低い場合は、cronからpg_dumpを実行してローカルファイルにダンプし、マシン上のファイルをバックアップする必要があるものを使用して、ダンプをアーカイブします。 。
pg_rman は、PostgreSQL 8.4以降で機能する増分バックアップを提供する新しいツールです。
astrails-safe を試してください。 mysql(mysqldump)、postgres(pg_dump)、または暗号化されたプレーンファイル(tar)(gnupg)をバックアップし、S3/Sftpにアップロードする方法を知っています。
pg_dumpは優れたソリューションですが、大量のデータをバックアップしようとしている場合は、おそらくこれが役立ちます。
http://www.postgresql.org/docs/8.1/static/backup-online.html
これは実際には一種の「生の」ロギングですが、増分バックアップ方法として役立ちます...
これは、各データベースを個別にバックアップするスクリプトです。また、忘れがちですが重要なPostgreSQL GLOBALSとユーザーログイン情報もバックアップします。
これの重要性は、pg_dumpallが提供しない圧縮と、pg_dumpが無視する忘れられたデータを利用することです。
これには、ここで説明されているpgpassまたは同様の設定が必要です http://wiki.postgresql.org/wiki/Pgpass
これはOSXの設定ですが、プログラムのパスを変更するだけで問題なく動作します。
/ sqlbackupsにバックアップします。スクリプトはディレクトリサイズ/ディレクトリを返し、失敗した場合にゼロ以外のステータスを返すブレークポイントがあります。 pgAgentと組み合わせて毎日のバックアップを行いました。
スクリプトは編集されました、申し訳ありません:(
barman を使用してポイントインタイムリカバリを簡単に実行できるのに、なぜ毎日のバックアップで落ち着くのですか?
他の人が言ったように:pg_dumpall。
また、ログ配布もご覧ください。その後、再生できるより多くのポイントインタイムバックアップを取得できます。 http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html
または、マニュアルのバックアップに関するセクションはどうですか?