Discovering connection strings
==============================

PGD
CLIは、PGDクラスターに接続できる任意のシステムにインストールできます。
PGD CLIを使用するには、
PGDスーパーユーザー権限または同等のユーザーが必要です。スーパーユーザー権限を持つPGDユーザーは
 :ref:`bdr_superuserのロールとレプリケーション <bdr_superuserのロールとレプリケーション>`  です。同等のユーザーの例は、EDB
BigAnimal分散高可用性クラスターのedb_adminです。

PGD CLIとデータベース接続文字列
-------------------------------

データベース接続文字列は必要ない場合があります。たとえば、Trused
Postgres ArchitectはシステムにPGD
CLIをインストールすると、PGDクラスターへの接続も構成します。これは、 PGD
CLIが実行時にクラスターに接続できることを意味します。

データベース接続文字列の取得
----------------------------

PGDはさまざまな構成をサポートするため、すべての展開方法には、接続文字列を取得する異なる方法があります。通常、展開の構成から必要な情報を取得できます。次に、その情報を接続文字列にアセンブルできます。

TPA展開されたPGDクラスターの場合
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TPAは非常に柔軟であるため、クラスター構成ファイル ``config.yml``
から接続文字列を導き出す必要があります。

-  ロールpgd-proxyがリストされているホストの名前またはIPアドレスが必要です。このホストには、接続できるプロキシがあります。通常、プロキシはポート6432でリッスンします。確認するには、構成の\ ``default_pgd_proxy_options``
   および\ ``listen_port`` の設定を確認してください。

-  デフォルトのデータベース名は\ ``bdrdb``
   です。確認するには、構成の\ ``bdr_database`` 設定を確認してください。

-  デフォルトのPGDスーパーユーザーは、 EDB Postgres Advanced
   Serverの場合はenterprisedbであり、PostgreSQLおよびEDB Postgres
   Extended Serverの場合はpostgresです。

次に、その情報に基づいて接続文字列をアセンブルできます。

::

   "host=<hostnameOrIPAddress> port=<portnumber> dbname=<databasename> user=<username> sslmode=require"

これを説明するために、クラスターの\ ``config.yml``
ファイルの一部の抜粋を次に示します。

.. code:: yaml

   ...
   cluster_vars:
     ...
     bdr_database: bdrdb
     ...
     default_pgd_proxy_options:
       listen_port: 6432
     ...

   instances:

   - Name: kaboom
     backup: kapok
     location: dc1
     node: 1
     role:
     - bdr
     - pgd-proxy
     networks:
     - ipv4_address: 192.168.100.2
       name: tpanet
   ...

このクラスターの接続文字列は次のとおりです。

::

   "host=192.168.100.2 port=6432 dbname=bdrdb user=enterprisedb sslmode=require"

..  Note Host name versus IP address::
   構成は、名前解決が使用できないDocker TPAインストールからのものであるため、この例ではIPアドレスを使用します。通常、構成済みのホスト名を使用できます。 !!!

EDB BigAnimal分散高可用性クラスターの場合
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1. `BigAnimal clusters <https://portal.biganimal.com/clusters>`_ ビューにログインします。

2. フィルターで **クラスタータイプ** を **分散高可用性** に設定して、PGD
   CLIで動作するクラスターのみを表示します。

3. クラスターを選択します。

4. クラスターのビューで、 **Connect** タブを選択します。

5. 接続情報から読み取り/書き込みURIをコピーします。これは接続文字列です。

KubernetesのEDB PGDで展開されたクラスターの場合
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TPAと同様に、KubernetesのEDB
PGDは非常に柔軟性があり、接続文字列を取得する方法は複数あります。これは、主に、デプロイメント用に :ref:`services </postgres_distributed_for_kubernetes/latest/connectivity/#services>` がどのように構成されたかによって異なります。

・
ノードサービステンプレートを使用する場合、各ノードとプロキシサービスへの直接接続が利用できます。

-  グループサービステンプレートを使用する場合、各グループへのゲートウェイサービスがあります。

-  プロキシサービステンプレートを使用する場合、単一のプロキシがすべてのアプリケーションのクラスターへのエントリポイントを提供します。

構成ファイルを参照して、この情報を判断します。

ホスト名またはIPアドレス、ポート、データベース名、およびユーザー名を確立します。デフォルトのデータベース名は\ ``bdrdb``
で、デフォルトのユーザー名はEDB Postgres Advanced
Serverの場合はenterprisedbであり、PostgreSQLおよびEDB Postgres Extended
Serverの場合はpostgresです。

次に、その情報に基づいて接続文字列をアセンブルできます。

::

   "host=<hostnameOrIPAddress> port=<portnumber> dbname=<databasename> user=<username>"

デプロイメントの構成で必要な場合、 ``sslmode=<sslmode>`` を追加します。
