PGD-Always-ON
=============

EDB Postgres Distributed
5は常時オン構成で、テストおよび実稼働での使用に適しています。

このアーキテクチャは、 EDB Postgres Distributed
5での使用にのみ有効であり、 :ref:`Configuring EDB Repos 2.0 repositories <Configuring EDB Repos 2.0 repositories>` 
へのサブスクリプションが必要です。

クラスター構成
--------------

構成オプションの概要
^^^^^^^^^^^^^^^^^^^^

このアーキテクチャの\ ``tpaexec configure``
の呼び出し例を以下に示します。

.. code:: shell

   tpaexec configure ~/clusters/pgd-ao \
            --architecture PGD-Always-ON \
            --edb-postgres-extended 15 \
            --platform aws --instance-type t3.micro \
            --distribution Debian \
            --pgd-proxy-routing global \
            --location-names dc1 dc2 dc3 \
            --witness-only-location dc3 \
            --data-nodes-per-location 2

helpコマンドを使用して、使用可能なすべてのオプションをリストできます。

.. code:: shell

   tpaexec configure --architecture PGD-Always-ON --help

次の表では、PGD-Always-ONの必須オプションと追加の重要なオプションについて説明します。オプションの詳細については、次のセクションで説明します。

必須オプション
^^^^^^^^^^^^^^

.. csv-table::
  :header: Options,Description
  :widths: 10,30
  :align: left
  :class: longtable

  `--architecture` (`-a`),`PGD-Always-ON`に設定する必要があります
  Postgres flavour and version (e.g. `--postgresql 15`),有効な :ref:`tpaexec-configure <Cluster configuration>` 。
  `--pgd-proxy-routing`,`global`または`local`のいずれかである必要があります。

追加オプション
^^^^^^^^^^^^^^

.. csv-table::
  :header: Options,Description,Behaviour if omitted
  :widths: 12,25,15
  :align: left
  :class: longtable

  `--platform`,`aws`、`docker`、`bare`のいずれか。,Defaults to `aws`.
  `--location-names`,ロケーション名のスペース区切りリスト。ロケーションの数は、提供された名前の数と同じです。,TPA will configure a single location with three data nodes.
  `--witness-only-location`,ロケーション名は、 `location-names`のメンバーである必要があります。,No witness-only location is added.
  `--data-nodes-per-location`,各場所のデータノードの数は、少なくとも2でなければなりません。,Defaults to 3.
  `--add-proxy-nodes-per-location`,各場所のプロキシノードの数。,PGD-proxy will be installed on each data node.
  `--enable-camo`,各ロケーションに2つのデータノードをCAMOパートナーとして設定します。,CAMO will not be enabled.
  `--bdr-database`,レプリケーションに使用されるデータベースの名前。,Defaults to `bdrdb`.
  `--enable-pgd-probes`,`health/is-ready`などのpgd-proxyのhttp(s) apiエンドポイントを有効にして、プロキシの状態のプローブを許可します。,Disabled by default.

PGD-Always-ON構成の詳細
^^^^^^^^^^^^^^^^^^^^^^^

PGD-Always-ONクラスタは、多数の、好ましくは奇数の場所を含み、それぞれが同じ数の、好ましくは奇数のデータノードを有する。
``--location-names``
を指定しない場合、デフォルトでは3つのデータノードで単一の場所を使用します。

クラスターの場所名は\ ``--location-names dc1 dc2 …``
として指定されます。ロケーションは、この定義がユースケースに意味をなす方法で、レベルの冗長性を提供する独立したデータセンターを表します。たとえば、AWSリージョン、独自のデータセンター、またはサーバーがホストされている場所を識別するためのその他の指定。

..  Note for AWS users::
   TPAを使用してAWSクラスターをプロビジョニングしている場合、場所は指定した`--region` 内の別のアベイラビリティーゾーンにマッピングされます。複数の`--regions` を指定できますが、TPAは現在、異なるリージョンのインスタンスが相互に通信できるようにVPCピアリングを設定していません。マルチリージョンクラスターの場合、自分でVPCピアリングを設定する必要があります。

``--data-nodes-per-location N``
を使用して、各場所のデータノードの数を指定します。最小数は2で、デフォルトは3です。

ロケーションごとに偶数のデータノードを指定すると、TPAは各ロケーションに追加の監視ノードを自動的に追加します。これにより、コストを削減しながら信頼できるコンセンサスを確立する機能が保持されます（Witnessには、データノードと比較して最小限のハードウェア要件があります）。

ロケーションが2つしかないクラスターは、ロケーションの1つで障害が発生した場合、グローバルコンセンサスを確立する機能を完全に失います。
3番目の監視専用の場所を追加することをお勧めします（これにはデータノードが含まれず、監視ノードのみが含まれ、再びコンセンサスを確実に確立するために使用されます）。
``--witness-only-location loc``
を使用して、場所の1つを証人として指定します。

デフォルトでは、（すべての場所の）すべてのデータノードも、接続ルーティングのためにPGD-Proxyを実行します。代わりに別のPGD-Proxyインスタンスを作成するには、
``--add-proxy-nodes-per-location 3``
（または追加したい数のプロキシ）を使用します。

ユースケースに応じて、 ``--pgd-proxy-routing local`` または\ ``global``
を指定して、PGD-Proxyが接続を書き込みリーダーにルーティングする方法を構成する必要があります。ローカルルーティングは、すべてのPGDプロキシルートを独自の場所内の書き込みリーダーに作成します（ジオシャーディングアプリケーションに適しています）。グローバルルーティングは、すべてのプロキシルートをすべての場所で使用可能なすべてのデータノードの中から選択された単一の書き込みリーダーにします。

オプションで\ ``--bdr-database dbname`` を指定して、
BDRを有効にしたデータベースの名前を設定できます（デフォルト：bdrdb）。

オプションで\ ``--enable-camo``
を指定して、各リージョンに2つのデータノードをCAMOパートナーとして設定できます。

オプションで\ ``--enable-pgd-probes [{http, https}]``
を指定して、プロキシの状態を簡単にプローブできるhttp(s)
apiエンドポイントを有効にすることができます。

 :ref:`tpaexec help configure-options <Cluster configuration>` で説明されているオプションのいずれかを指定することもできます。
