データベース設計は初めてです。高可用性クラスターを作成するタスクがあります。私はたくさんグーグルしましたが、PostgreSQLでこれを行う良い方法が見つかりませんでした。
どこから始めればよいですか?高可用性クラスターの作成に必要な手順は何ですか?
PostgreSQL用のHAクラスターをセットアップするには、多くの方法があります。いくつかの方法は大きくて難しいです。
最も簡単な方法は次のとおりです。
この方法は、適切な縮退でHAクラスタを構築する最も簡単な方法です。
レプリケーションのほとんどのメソッドは通常非同期です。私は以下をお勧めします:
覚えておいてください DRBDは同期ディスクレベルレプリケーションです 。
DRBDはアクティブ/パッシブネットワークRAID-1であるため、STONITH(Shoot the Other Node in the Head))は、適切にスクリプト化された自動フェイルオーバーで対応する必要があります。さらに、パッシブサイズ(別名DRBDセカンダリ) )はPostgreSQLを実行していません。DRBDはネットワークRAID-1設定でディスクレプリケーションを実行するだけです。ucarpまたはHeartbeatに設定したアップスクリプトは、次のようにして悲観的である必要があります。
/dev/drbd0
_への_/var/lib/pgsql
_のマウント1つのサーバーのみで起動するDBVIPを使用している場合は、スプリットブレインシナリオを心配する必要はありません。データが書き込まれる場所は、DBVIPを持っている人が決定します。 DRBDセカンダリ(パッシブサイズ)が前述の4つのステップを実行する場合、ucarpまたはHeartBeatのアップスクリプトがDBVIPを検出することを確認する必要があります(つまり、DBVIPでping -cを実行し、nothinで戻ってきます)。 ip addr add DBVIP/32 dev (interface)
を実行します。
自動フェイルオーバーが発生すると、ucarpまたはHeartBeatのダウンスクリプトを実行して、比喩的にSTONITHを処理します。
/var/lib/pgsql
_から_/dev/drbd0
_をアンマウントdrbdadm disconnect drbd0
_drbdadm secondary drbd0
_次に、DBVIPが新しいプライマリ上にあることがわかったら、新しいDRBDプライマリに移動し、_drbdadm connect drbd0
_を実行して_cat /proc/drbd
_を監視し、新しいDRBDプライマリが新しいDRBDセカンダリと同期することを確認します。