Using PGD CLI
=============

PGD CLIとは何ですか?
--------------------

PGD
CLIは、PGDクラスターに接続して管理する便利な方法です。これを使用するには、PGDスーパーユーザー権限または同等のユーザーが必要です。スーパーユーザー権限を持つPGDユーザーは
 :ref:`bdr_superuserのロールとレプリケーション <bdr_superuserのロールとレプリケーション>`  です。同等のユーザーの例は、EDB
BigAnimal分散高可用性クラスターのedb_adminです。

..  Important Setting passwords::
   PGD CLIは対話型でパスワードの入力を求めません。次のいずれかの方法を使用してパスワードを渡す必要があります。

-  `.pgpass <https://www.postgresql.org/docs/current/libpq-pgpass.html>`_ にエントリを追加します。これには、ホスト、ポート、データベース名、ユーザー名、パスワードが含まれます。
   - ``PGPASSWORD`` 環境変数にパスワードを設定する。 -
   接続文字列にパスワードを含めます。

他のオプションは複数のデータベースでうまく拡張できないか、パスワードの機密性が危険にさらされるため、最初のオプションをお勧めします。

.. ::
   ## PGD CLIの実行

 :ref:`installed pgd-cli <Deploying EDB Postgres Distributed using Trusted Postgres Architect>` を取得したら、 ``pgd``
コマンドを実行してPGDコマンドラインインターフェイスにアクセスします。
``pgd``
コマンドには、ユーザー名とパスワードとともに、接続するホスト、ポート、データベースに関する詳細が必要です。

データベース接続文字列を渡す
----------------------------

``--dsn`` フラグを使用して、データベース接続文字列を\ ``pgd``
コマンドに渡します。 ``--dsn``
フラグを使用して接続文字列を渡す場合、構成ファイルは必要ありません。構成ファイルが存在する場合でも、フラグが優先されます。例

.. code:: sh

   pgd show-nodes --dsn "host=bdr-a1 port=5432 dbname=bdrdb user=enterprisedb"

コマンドオプションの説明については、コマンドリファレンスの :ref:`PGD overview <PGD overview>` を参照してください。

構成ファイルの指定
------------------

``pgd-cli-config.yml`` ファイルが\ ``/etc/edb/pgd-cli``
または\ ``$HOME/.edb/pgd-cli`` にある場合、\ ``pgd``
はそれを使用します。オプションの\ ``-f`` または\ ``--config-file``
フラグを使用して、この動作をオーバーライドできます。例

.. code:: sh

   pgd show-nodes -f /opt/my-config.yml
   Node             Node ID    Group          Type    Current State Target State Status Seq ID
   - ---             -------    -----          ----    ------------- ------------ ------ ------
   p-vjljj303dk-a-1 2573417965 p-vjljj303dk-a data    ACTIVE        ACTIVE       Up     1
   p-vjljj303dk-a-2 126163807  p-vjljj303dk-a data    ACTIVE        ACTIVE       Up     2
   p-vjljj303dk-a-3 3521351376 p-vjljj303dk-a witness ACTIVE        ACTIVE       Up     3

出力形式の指定
--------------

``-o`` または\ ``--output``
フラグを使用して、デフォルトの出力形式をJSONまたはYAMLに変更します。例

.. code:: sh

   pgd show-nodes -o json
   [
       {
           "node_id": 2573417965,
           "node_name": "p-vjljj303dk-a-1",
           "node_group_id": 4169125197,
           "node_group_name": "p-vjljj303dk-a",
           "node_kind_name": "data",
           "current_state": "ACTIVE",
           "target_state": "ACTIVE",
           "status": "Up",
           "node_seq_id": 1,
           "node_local_dbname": "bdrdb",
           "interface_connstr": "host=p-vjljj303dk-a-1-node.vmk31wilqpjeopka.biganimal.io user=streaming_replica sslmode=verify-full port=5432 sslkey=/controller/certificates/streaming_replica.key sslcert=/controller/certificates/streaming_replica.crt sslrootcert=/controller/certificates/server-ca.crt application_name=p-vjljj303dk-a-1 dbname=bdrdb",
           "route_priority": -1,
           "route_fence": false,
           "route_writes": true,
           "route_reads": true,
           "route_dsn": "host=p-vjljj303dk-a-1-node.vmk31wilqpjeopka.biganimal.io user=streaming_replica sslmode=verify-full port=5432 sslkey=/controller/certificates/streaming_replica.key sslcert=/controller/certificates/streaming_replica.crt sslrootcert=/controller/certificates/server-ca.crt application_name=p-vjljj303dk-a-1 dbname=bdrdb"
       },
   ...
   ]

PGD CLIは、次の出力形式をサポートしています。

.. csv-table::
  :header: Setting,Format,Considerations
  :widths: 12,12,25
  :align: left
  :class: longtable

  none,Tabular,デフォルトのフォーマット。この設定では、データを表形式で表示します。
  `json`,JSON,フォーマットなしの生データを表示します。一部のコマンドでは、JSON出力には、追加のフィールドや詳細なメッセージなど、表形式出力より多くのデータが表示される場合があります。
  `yaml`,YAML,JSON出力に似ていますが、YAMLとして、フィールドがアルファベット順にオーダーされます。実験的であり、将来のバージョンでは完全にサポートされない可能性があります。

コマンドラインヘルプへのアクセス
--------------------------------

サポートされているコマンドをリストするには、次を入力します。

.. code:: sh

   pgd help

特定のコマンドとそのパラメーターのヘルプが必要な場合は、\ ``pgd help <command_name>``
と入力してください。例

.. code:: sh

   pgd help show-nodes

..  Note Avoiding stale data::
   PGD CLIは、クラスターから分離されたノードにまだ接続している場合、クラスターの状態に関する古いデータを結果ことができます。 `pgd-cli-config.yml` ファイルを編集するか、`--dsn` 設定を変更して、クラスター内のアクティブなノードに接続していることを確認します。 !!!
