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

..  Note::
   このアーキテクチャはPostgres Distributed 5専用です。 PGD 4または3.7が必要な場合は、 :ref:`BDR-Always-ON <BDR-Always-ON>` を使用してください。

Always-ON構成のEDB Postgres Distributed
5は、テストおよび運用環境での使用に適しています。

このアーキテクチャには、EDBサブスクリプションが必要です。
すべてのソフトウェアは :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:`Postgresのフレーバーとバージョン<Postgresのフレーバーとバージョン>` 。
  `--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-プロキシのhttp(s) APIエンドポイントを有効にして、プロキシの状態をプローブできるようにします。,Disabled by default.
  `--proxy-listen-port`,プロキシノードがトラフィックを書き込みリーダーにルーティングするポート。,Defaults to 6432
  `--proxy-read-only-port`,プロキシノードが読み取り専用トラフィックをシャドウノードにルーティングするポート。,Defaults to 6433

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

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

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

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

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

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

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

デフォルトでは、すべてのデータノードすべての場所で、接続ルーティングのためにPGD-プロキシも実行されます。代わりに別のPGD-プロキシインスタンスを作成するには、\ ``--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
APIエンドポイントを有効にすることができます。

:ref:`クラスター構成 <クラスター構成>` で説明されるオプションを指定することもできます。
