3

VMハイパーバイザーで実行されているDjango/Postgresサイトにサービスを提供しています。現在、バックアップ戦略を理解しようとしています。考えられる選択肢は2つあります。

  1. を使用してDBを直接バックアップしますpg_dump
  2. VMイメージをコピーしてVMを直接バックアップします

私は後者と一緒にいると思いますが、サイトに関係するすべてのものを簡単にバックアップできます。ただし、このためにVMをシャットダウンする必要があるかどうかはわかりません。

DBをバックアップするためのより良い、より推奨される方法は何ですか?VMバックアップを使用しない理由はありますか?

ありがとう

4

3 に答える 3

3

質問は基本的に要約すると、PostgreSQLのデータファイルのホットコピーをバックアップと見なすことができますか?

答えは:そうではありません。PostgreSQLは、WALを使用して、ファイルが常に一貫した状態にあり、電源障害に耐えられるようにするために非常に努力していますが、これらのファイルのコピーから起動すると、PostgreSQLはリカバリモードになります。バックアップが間違った秒で行われ、PostgreSQLがこれらのファイルの状態から回復できない場合、バックアップは役に立ちません。バックアップ/復元メカニズムをリカバリメカニズムに依存させたくない場合(PostgreSQLではない「クラッシュのみ」のソフトウェアを扱っている場合を除く)。

PostgreSQLがこれらのファイルから回復できない可能性は高くありませんが、ゼロでもありません。一方、PostgreSQLが作成したSQLダンプをロードできない可能性はゼロです。失敗の可能性が低いバックアップを選択することをお勧めします。pg_dumpバックアップを行うために設計されました。

于 2011-08-29T17:05:43.783 に答える
2

ファイルシステム(またはVM)のバックアップではデータベースをシャットダウンする必要があるため(その他の欠点もあるため)、PostgreSQLではバックアップにpg_dumpを使用することをお勧めします。

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

編集:また、pg_dumpバックアップは、同じデータベースのファイルシステムダンプよりも大幅に小さくなります。

于 2011-08-29T16:55:25.473 に答える
0

追加のオプションがあります。PostgreSQLを使用すると、ファイルシステムのスナップショットを作成して一貫性を維持できるオンラインバックアップを作成できます。詳細はこちらで確認できます: http ://www.postgresql.org/docs/9.0/static/continuous-archiving.html

VMでPostgreSQLを実行する場合、バックアップを作成するためにこの正確な方法を使用します。

于 2011-08-29T20:36:12.117 に答える