1

私の会社の Web サイトでは PostgreSQL データベースを使用しています。私たちのデータセンターには、マスター DB といくつかの読み取り専用スレーブ DB があり、それらの間の継続的なレプリケーションに Londiste を使用しています。

レポート用に別の読み取り専用スレーブ DB をセットアップしたいと考えており、このスレーブをリモート ロケーション (データ センターの外) に置きたいと考えています。このスレーブは 100% 最新である必要はありません。24時間以内であれば問題ありません。また、マスター DB にかかる負荷を最小限に抑えたいと考えています。私たちのマスター DB は日中はビジーで、夜はアイドル状態であるため、(可能であれば) レポート スレーブを毎晩 1 回キャッチアップすることをお勧めします。

http://www.postgresql.org/docs/8.4/static/continuous-archiving.htmlで説明されているように、これにログ配布を使用することを考えてい ます

私の計画は次のとおりです。

  1. マスター DB に WAL アーカイブをセットアップする
  2. 完全な DB スナップショットを作成し、リモートの場所にコピーします
  3. DBを復元して追いつく
  4. 次の場合に定常状態に入ります。
    • DAYTIME -- DB は遅れていますが、人々はクエリを実行できます
    • 夜 -- 1 日分の WAL ファイルをコピーして、DB を追い上げます

注: ここで重要なのは、完全な DB スナップショットを 1 回だけコピーする必要があるということです。その後、リモート スレーブを再び追いつくために、1 日分の WAL ファイルをコピーするだけで済みます。

ログ配布を行ったことがないので、フィードバックやアドバイスをお願いします。

これは機能しますか?PostgreSQL はこの種の繰り返し復旧をサポートしていますか?

リモートのセミフレッシュ読み取り専用スレーブをセットアップする方法について、他に提案はありますか?

ありがとう!

--S

4

2 に答える 2

3

あなたの計画はうまくいくはずです。
チャールズが言うように、ウォーム スタンバイも別の可能な解決策です。これは 8.2 以降でサポートされており、プライマリ サーバーのパフォーマンスへの影響は比較的低くなっています。ウォーム スタンバイはマニュアルに記載されています: PostgreSQL 8.4 ウォーム スタンバイ

スタンバイ サーバーを構成するための簡単な手順は次のとおりです。各ステップの詳細については、前述のセクションを参照してください。

  1. 同じリリース レベルの 2 つの同一の PostgreSQL のコピーを含め、プライマリ システムとスタンバイ システムをできるだけ同じようにセットアップします。
  2. プライマリ サーバーからスタンバイ サーバーのディレクトリにある WAL アーカイブへの継続的なアーカイブをセットアップします。archive_mode、archive_command、および archive_timeout がプライマリで適切に設定されていることを確認します (セクション 24.3.1 を参照)。
  3. プライマリ・サーバーのベース・バックアップを作成し(項24.3.2を参照)、このデータをスタンバイにロードします。
  4. 前述のように待機するrestore_commandを指定するrecovery.confを使用して、ローカルWALアーカイブからスタンバイ・サーバーでリカバリを開始します(セクション24.3.3を参照)。

夜間の同期のみを実現するには、日中に archive_command をゼロ以外の終了ステータスで終了する必要があります。

追加情報:

ウォーム スタンバイに関する Postgres Wiki

ブログ投稿 ウォーム スタンバイのセットアップ

于 2011-01-28T08:02:05.973 に答える
3

9.0 のビルトイン WAL ストリーミング レプリケーションは、読み取り専用クエリを受け入れることができるウォーム スタンバイまたはホット スタンバイという目標を達成するように設計されています。それを使用することを検討しましたか、それとも今のところ 8.4 にこだわっていますか?

(また、次の 9.1 リリースには、新しいスレーブの初期バックアップ ポイントを作成するためのツールであるpg_basebackupの更新/書き換えバージョンが含まれる予定です。)


更新: PostgreSQL 9.1 には、スレーブでの単純な関数呼び出しでストリーミング レプリケーションを一時停止および再開する機能が含まれます

于 2011-01-28T06:55:09.827 に答える