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

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

このアーキテクチャはEDB
Postgres分散バージョン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

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

.. 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:`Configuring lvm-direct for production <Cluster configuration>` 。
  `--pgd-proxy-routing`,`global`または`local`のいずれかである必要があります。

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

.. csv-table::
  :header: Options,Description,Behavior 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`のようなhttp(s) APIエンドポイントを有効にして、pgd-プロキシの状態をプローブします。,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つのロケーションのみからなるクラスターは、いずれかのロケーションに障害が発生した場合、グローバルコンセンサスを確立する能力を完全に失います。単一の場所で障害が発生した場合でも、コンセンサスを確立する機能を維持できます。これを行うには、監視ノードのみを含む3番目の監視専用の場所を追加することをお勧めします。
``--witness-only-location loc``
を使用して、いずれかの場所を監視者として指定します。

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

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

オプションで次を指定できます。

-  ``--bdr-database dbname``
   BDRが有効なデータベースの名前を設定しますデフォルトbdrdb

-  各リージョンに2つのデータノードをCAMOパートナーとして設定する\ ``--enable-camo``

-  ``--enable-pgd-probes [{http, https}]``
   は、プロキシの状態を簡単にプローブできるhttp
   APIエンドポイントを有効にします

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