Standard PGD architecture#
標準アーキテクチャは、コアPGD機能を使用して、マルチマスターレプリケーション構成で3つのノードを構成します。つまり、各ノードはマスターノードとして動作し、そのデータを他のノードに論理的に複製します。 PGDは、ノード上のデータ変更間の競合を処理できますが、標準アーキテクチャはPGDの統合接続マネージャーを使用して、すべての書き込みが単一のノード書き込みリーダーに送られるようにします。その特異なリーダーにデータのすべての更新を処理させることにより、競合が回避されます。変更は、クラスター内の他のノードに複製されます。
書き込みリーダーに障害が発生すると、クラスター内の残りのノードが新しい書き込みリーダーを選択し、これらのノードの接続マネージャーがフェイルオーバーして新しいリーダーに書き込みを送信します。障害が発生したノードがオンラインに戻ると、クラスターに再参加し、新しい書き込みリーダーからデータの複製を開始します。
標準アーキテクチャは、ユーザーエクスペリエンスに基づいて、展開と管理が簡単になるように作成されました。他の高可用性ソリューションとは異なり、より複雑なアーキテクチャへの移行はシンプルで簡単で、必要に応じて新しいデータグループをクラスターに追加します。
PGD標準アーキテクチャの手動展開#
PGD標準アーキテクチャの手動展開は、簡単なプロセスです。このアーキテクチャは、高可用性が必要で、ディザスターから復旧できる単一の場所向けに設計されています。これは、マルチマスターレプリケーション構成に3つのデータノードを持ち、1つのノードが書き込みリーダーとして機能することにより実行されます。
PGD構成#
インストールガイドの手順を使用して、3つのノードの各ノードにPGDをインストールします。具体的には
Configuring PGD repositories PGDパッケージのインストールを有効にします。
Installing the database and pgd PGDパッケージをインストールします。
Configuring the cluster PGDクラスターを構成します。
実際の例#
この例では、 PGD Standardアーキテクチャと次のパラメーターを使用して、 EDB Postgres Extended Serverで3ノードRHELクラスターを作成します。
最初のノードは
node1と呼ばれ、host-1にあります。2番目のノードは
node2と呼ばれ、host-2にあります。3番目のノードは
node3と呼ばれ、host-3にあります。クラスター名は
pgdデフォルトの名前です。グループ名は
group1です。Postgresのバージョンは
17です。Postgresデータディレクトリは
/var/lib/edb-pge/17/main/です。Postgres実行可能ファイルは
/usr/edb/pge17/bin/にあります。Postgresデータベースユーザーは
postgresです。Postgresデータベースポートは
5432です。Postgresデータベース名は
pgddbです。
最初のノードの場合#
これは、ソフトウェアをインストールする3つのノードすべての共通設定です。
export EDB_SUBSCRIPTION_TOKEN=XXXXXXXXXXXXXX
export EDB_SUBSCRIPTION_PLAN=enterprise
export EDB_REPO_TYPE=rpm
curl -1sSLf " https://downloads.enterprisedb.com/$EDB_SUBSCRIPTION_TOKEN/$EDB_SUBSCRIPTION_PLAN/setup.$EDB_REPO_TYPE.sh" | sudo -E bash
export PG_VERSION=17
export PGD_EDITION=essential
export EDB_PACKAGES="edb-as$PG_VERSION-server edb-pgd6-$PGD_EDITION-epas$PG_VERSION"
sudo dnf install -y $EDB_PACKAGES
最初のノードで、次のコマンドはクラスターとグループを作成します。また、データディレクトリを作成し、データベースを初期化します。
sudo su - postgres
export PATH=$PATH:/usr/edb/pge17/bin/
pgd node node1 setup "host=host-1 user=postgres port=5432 dbname=pgddb" --pgdata /var/lib/edb-pge/17/main/ --group-name group1 --cluster-name pgd --create-group --initial-node-count 3
2番目のノードの場合#
2番目のノードでソフトウェアのインストール手順を繰り返します。
次に、次のコマンドを実行してノードを初期化し、クラスターとグループに参加します。
sudo su - postgres
export PATH=$PATH:/usr/edb/pge17/bin/
pgd node node2 setup "host=host-2 user=postgres port=5432 dbname=pgddb" --pgdata /var/lib/edb-pge/17/main/ --cluster-dsn "host=host-1 user=postgres port=5432 dbname=pgddb"
3番目のノードの場合#
3番目のノードでソフトウェアのインストール手順を繰り返します。
ノードを初期化し、クラスターとグループに参加するコマンドは、2番目のノードに似ていますが、ホスト名とノード名が異なります。
sudo su - postgres
export PATH=$PATH:/usr/edb/pge17/bin/
pgd node node3 setup "host=host-3 user=postgres port=5432 dbname=pgddb" --pgdata /var/lib/edb-pge/17/main/ --cluster-dsn "host=host-1 user=postgres port=5432 dbname=pgddb"