6

Amazon EC2 に postgresql データベースがあり、このデータをバックアップしておく最善の方法を決定する必要があります。次の 2 つのオプションを検討しています。

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

また

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

3 番目のオプションは、ルート デバイス ボリュームのスナップショットを作成することです (私は EBS でサポートされたインスタンスを使用しています)。これは、私の場合は Web サーバーとデータベースの両方であるためです。ただし、データのバックアップ専用のボリュームを用意するというアイデアは気に入っています。

最後に、ライブの postgresql データ ディレクトリの直接スナップショットを作成している場合、スナップショット プロセス中にデータベースが変更される可能性について心配する必要はありますか?

ありがとう

4

1 に答える 1

4

いずれにせよ、ボリュームを独自の EBS ボリュームに移動する必要があります。これにより、EBS ボリュームでの書き込み競合やその他の利点が改善されます。さらに、ログを独自のボリュームに書き込み、それらもバックアップしています。

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

これを行うために私が書いたスクリプトを次に示します。時代遅れかもしれませんが、動作するはずです。

于 2012-07-23T20:45:08.983 に答える