2012-07-23 26 views
5

私はamazon EC2にpostgresqlデータベースを持っており、このデータをバックアップする最良の方法を判断する必要があります。Amazon EC2 postgresqlのバックアップ:データディレクトリまたはpg_dumpを一貫してスナップショットされたEBSボリュームにスナップショットしますか?

(1)/ pgsqldataのようなディレクトリにEBSボリュームをマウントし、このディレクトリをpostgresqlデータディレクトリとして使用します(Amazon Linuxではデフォルトは/ var/lib/pgsql/data /)。その後、このボリュームは頻繁なスナップショットを取得します。

または

(2)デフォルトの場所です、それにPostgreSQLのデータディレクトリを保管してください。次に、pg_dumpを使用して/ pgsqldumpsのような場所にバックアップを頻繁にダンプすると、そのボリュームは各pg_dumpの後にスナップショットを取得します。

3番目のオプションは、私のケースではWebサーバーとデータベースの両方であるため、ルートデバイスのボリュームをスナップショットするだけです(私はEBSでバックアップされたインスタンスを使用しています)。私はデータバックアップ用の専用ボリュームを持っているという考えが好きです。

最後に、私が実際のpostgresqlデータディレクトリのスナップショットを取っている場合、スナップショットプロセス中に起こりうるデータベースの変更について心配する必要はありますか?

おかげ

+0

http://www.postgresql.org/docs/9.1/interactive/continuous-archiving.htmlも参照してください(まだ行っていない場合) – derobert

答えて

4

あなたはとにかく独自のEBSボリュームにボリュームを移動する必要があり、これは書き込みEBSボリュームの競合だけでなく、他の利点に役立ちます。さらに、自分のボリュームにログを書き込んで、それらのログもバックアップしています。

質問に答えるために、私は両方を行います。 EBSボリュームをスナップショットにしてデータベースのダンプを実行する。この方法では、ライブデータを(データベースのPIIに応じて)devボックスに同期させたい場合、ダンプとリストアは簡単ですが、新しいインスタンスを復元して簡単にスナップショットを添付することもできます。データベースのダンプが5GB未満であれば、それをS3に同期させて、自分のボリュームにバックアップを保存する必要はありませんが、それが自分のEBSボリュームに保存する必要があります。基礎。

Hereはこれを行うために書いたスクリプトですが、古くなっているかもしれませんが、うまくいくはずです。

関連する問題