Step 8 - Using PGD CLI#

PGD CLIを使用する#

PGD CLIコマンドは、構成ファイルを使用して、接続するホストを判断します。 これをオーバーライドして代替構成ファイルを使用したり、サーバーを明示的にポイントしたりできる PGD CLIを使用する があります。ただし、デフォルトでは、 PGD CLIはプリセットの場所で構成ファイルを検索します。

データベースへの接続は、 psqlコマンドのような他のコマンドラインユーティリティが認証されるのと同じ方法で認証されます。

他のコマンドとは異なり、 PGD CLIは対話型でパスワードの入力を求めません。したがって、次のいずれかの方法を使用してパスワードを渡す必要があります。

  • ホスト、ポート、データベース名、ユーザー名、パスワードを含むエントリを .pgpass に追加する - PGPASSWORD 環境変数にパスワードを設定する - 接続文字列にパスワードを含める

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

PGD CLIの構成と接続#

  • PGD CLIがインストールされていることを確認します。 PGD CLIが既にインストールされている場合、次の手順に進みます。 任意のシステムの場合、そのシステムで Step 3 - Configuring PGD repositories ステップを繰り返します。 次に、そのプラットフォームに適切なパッケージインストールコマンドを実行します。 RHELおよび派生製品 sudo dnf install edb-pgd5-cli * Debian、Ubuntu、および派生製品 sudo apt-get install edb-pgd5-cli

  • 構成ファイルを作成します。 *これは、使用するPGD CLIのクラスターとエンドポイントを指定するYAMLファイルです。

  • 構成ファイルをインストールします。 YAML構成ファイルをデフォルトの構成ディレクトリ``/etc/edb/pgd-cli/`` に``pgd-cli-config.yml`` としてコピーします。 PGD CLIを実行するシステムでこのプロセスを繰り返します。

  • pgd-cliを実行します。

PGD CLIを使用してクラスターを探索する#

  • cluster show --health コマンドでクラスターの状態を確認します。

  • nodes list コマンドを使用して、クラスター内のノードを表示します。

  • groups list コマンドでクラスター内のグループを表示する

  • group set-option コマンドでグループオプションを設定します。

  • group set-leader コマンドで書き込みリーダーを切り替えます。

これらのコマンドの詳細については、次の実際の例を参照してください。

また、他の構成オプションの詳細と完全なコマンドリファレンスについては、 PGD CLI documentation を参照してください。

実際の例#

PGD CLIがインストールされていることを確認します#

この実際の例では、PostgresとPGDが既にインストールされているhost-1でPGD CLIを構成して使用します。 PGD CLIを再度インストールする必要はありません。

構成ファイルを作成する#

PGD CLI構成ファイルは、PGDプロキシ構成ファイルに似ています。これは、クラスターオブジェクトを含むYAMLファイルです。これには2つのプロパティがあります。

  • PGDクラスターのトップレベルグループの名前name として

  • データベースのエンドポイントの配列endpoints として

cluster:
  name: pgd
  endpoints:
    - host=host-one dbname=bdrdb port=5444
    - host=host-two dbname=bdrdb port=5444
    - host=host-three dbname=bdrdb port=5444

この例のエンドポイントはport=5444 を指定していることに注意してください。これはEDB Postgres Advanced Serverインスタンスに必要です。 EDB Postgres ExtendedおよびコミュニティPostgreSQLの場合、これを省略できます。

構成ファイルのインストール#

PGD CLI構成ディレクトリを作成します。

sudo mkdir -p /etc/edb/pgd-cli

次に、構成を/etc/edb/pgd-cli ディレクトリのpgd-cli-config.yml ファイルに書き込みます。

この例では、host-oneでこれを実行してファイルを作成できます。

cat <<EOF | sudo tee /etc/edb/pgd-cli/pgd-cli-config.yml
cluster:
  name: pgd
  endpoints:
    - host=host-one dbname=bdrdb port=5444
    - host=host-two dbname=bdrdb port=5444
    - host=host-three dbname=bdrdb port=5444
EOF

PGD CLIを使用する必要があるシステムでこのプロセスを繰り返すことができます。

PGD CLIを実行する#

構成ファイルを配置し、enterprisedb systemユーザーとしてログインすると、pgd-cliを実行できます。 たとえば、 nodes list コマンドを使用して、クラスター内のノードとそのステータスをリストできます。

pgd nodes list
__OUTPUT__
Node Name Group Name   Node Kind Join State Node Status
- --------  ----------- --------- ---------- -----------
node-one   dc1         data      ACTIVE     Up
node-three dc1         data      ACTIVE     Up
node-two   dc1         data      ACTIVE     Up

PGD CLIを使用してクラスターを探索する#

PGD CLIが構成されたら、それを使用して、クラスターのPGDレベルのビューを取得できます。

クラスターの状態を確認する#

cluster show --health コマンドは、クラスターの状態を表示する簡単な方法を提供します。

pgd cluster show --health
__OUTPUT__
Check             Status Details
- ---------------- ------ -----------------------------------------------
Connections       Ok     All BDR nodes are accessible
Raft              Ok     Raft Consensus is working correctly
Replication Slots Ok     All PGD replication slots are working correctly
Clock Skew        Ok     Clock drift is within permissible limit
Versions          Ok     All nodes are running the same PGD version

クラスター内のノードを表示する#

前述のように、 pgd groups list コマンドはクラスター内のノードをリストします。

pgd nodes list
__OUTPUT__
Node Name  Group Name  Node Kind Join State Node Status
- --------- ----------- --------- ---------- -----------
node-one   dc1         data      ACTIVE     Up
node-three dc1         data      ACTIVE     Up
node-two   dc1         data      ACTIVE     Up

このビューには、ノードがメンバーであるグループとその現在のステータスが表示されます。ノードで実行されているPGDおよびPostgresのバージョンを確認するには、 nodes list --versions を使用します。

pgd nodes list --versions
__OUTPUT__
Node Name BDR Version                   Postgres Version
- --------- ---------------------------  --------------------------------
node-one   5.7.0 (snapshot e2534db6d)   16.6 (Debian 16.6-1EDB.bullseye)
node-three 5.7.0 (snapshot e2534db6d)   16.6 (Debian 16.6-1EDB.bullseye)
node-two   5.7.0 (snapshot e2534db6d)   16.6 (Debian 16.6-1EDB.bullseye)

クラスター内のグループを表示する#

最後に、 PGD CLIの pgd groups list コマンドは、構成されているグループなどを表示します。

pgd groups list
__OUTPUT__
Group Name   Parent Group Name Group Type Nodes
- ----------- ----------------- ---------- -----
pgd                            global     0
dc1          pgd               data       3

このコマンドは次を示します。

  • グループ

  • そのタイプ

  • その親グループ

  • 各グループのノード数

グループオプションを設定する#

pgd group set-option コマンドを使用して、PGD CLIを使用してグループオプションを設定することもできます。 dc1 グループの場所をLondon に設定する場合は、次を実行します。

pgd group dc1 set-option location London
__OUTPUT__
Status Message
- ----- -----------------------------
OK     Command executed successfully

pgd group get-option コマンドを使用して、新しい場所を確認できます。

pgd group dc1 get-option location
__OUTPUT__
Option Name Option Value
- ---------- ------------
location    London

書き込みリーダーを設定する#

グループ内の書き込みリーダーを変更して、ホストでのメンテナンスを有効にする必要がある場合、 PGD CLIは pgd group set-leader コマンドを提供します。 group の後にグループ名を入力し、set leader の後にスイッチするノードの名前を入力します。

pgd group dc1 set-leader node-two
__OUTPUT__
Status Message
- ----- -----------------------------
OK     Command executed successfully

--summary option で pgd cluster show を使用して、書き込みリーダーを検証できます。

pgd group dc1 show --summary
__OUTPUT__
Group Property    Value
- ---------------- ------------
Group Name        dc1
Parent Group Name pgd
Group Type        data
Write Leader      node-two
Commit Scope

PGD CLIで使用可能なコマンドの詳細については、 PGD CLI command reference を参照してください。