Step 8 - Using PGD CLI#

PGD CLIを使用する#

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

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

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

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

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

PGD CLIの構成と接続#

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

  • PGD CLIが既にインストールされている場合は、次のステップに移動します。

  • システムの場合、そのシステムで configure 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を使用してクラスターを探索する#

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

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

  • show-proxies コマンドを使用して、クラスター内のプロキシを表示します。

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

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

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

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

また、他の構成オプションの詳細と完全なコマンドリファレンスについては、

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を実行できます。たとえば、 show-nodes コマンドを使用して、クラスター内のノードとそのステータスをリストできます。

pgd show-nodes
__OUTPUT__
Node       Node ID    Group Type Current State Target State Status Seq ID
- ---       -------    ----- ---- ------------- ------------ ------ ------
node-one   2824718320 dc1   data ACTIVE        ACTIVE       Up     1
node-three 1954860017 dc1   data ACTIVE        ACTIVE       Up     3
node-two   2299992455 dc1   data ACTIVE        ACTIVE       Up     2

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

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

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

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

pgd check-health
__OUTPUT__
Check      Status Message
- ----      ------ -------
ClockSkew  Ok     All BDR node pairs have clockskew within permissible limit
Connection Ok     All BDR nodes are accessible
Raft       Ok     Raft Consensus is working correctly
Replslots  Ok     All BDR replication slots are working correctly
Version    Ok     All nodes are running same BDR versions

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

前述のように、

show-nodes コマンドはクラスター内のノードをリストします。

pgd show-nodes
__OUTPUT__
Node       Node ID    Group Type Current State Target State Status Seq ID
- ---       -------    ----- ---- ------------- ------------ ------ ------
node-one   2824718320 dc1   data ACTIVE        ACTIVE       Up     1
node-three 1954860017 dc1   data ACTIVE        ACTIVE       Up     3
node-two   2299992455 dc1   data ACTIVE        ACTIVE       Up     2

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

pgd show-version
__OUTPUT__
Node       BDR Version Postgres Version
- ---       ----------- ----------------
node-one   5.3.0       16.1.0
node-three 5.3.0       16.1.0
node-two   5.3.0       16.1.0

クラスター内のプロキシを表示する#

show-proxies を使用して、構成済みのプロキシとそのグループとポートを表示できます。

pgd show-proxies
__OUTPUT__
Proxy           Group Listen Addresses Listen Port
- ----           ----- ---------------- -----------
pgd-proxy-one   dc1   [0.0.0.0]        6432
pgd-proxy-three dc1   [0.0.0.0]        6432
pgd-proxy-two   dc1   [0.0.0.0]        6432

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

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

pgd show-node_groups
__OUTPUT__
Group Group ID   Type   Parent Group Location Raft Routing Write Leader
- ---- --------   ----   ------------ -------- ---- ------- ------------
pgd   1850374637 global                       true false
dc1   4269540889 data   pgd                   true true    node-one

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

  • グループ

  • そのタイプ

  • その親グループ

  • グループの場所

  • Raftコンセンサスが有効かどうか

  • グループが接続をルーティングしているかどうか、およびそうである場合、その書き込みリーダーであるノード

場所は説明的なメタデータであり、これまでのところ設定していません。 PGD CLIを使用してこれを行うことができます。

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

set-group-options コマンドを使用して、PGD

CLIを使用してグループオプションを設定することもできます。これには、この変更のグループを設定する--group-name フラグと、変更する設定を含む--option フラグが必要です。 dc1 グループの場所をLondon に設定する場合は、次を実行します。

pgd set-group-options --group-name dc1 --option "location=London"
__OUTPUT__
group options updated successfully

show-groups で確認できます。

pgd show-node_groups
__OUTPUT__
Group Group ID   Type   Parent Group Location Raft Routing Write Leader
- ---- --------   ----   ------------ -------- ---- ------- ------------
pgd   1850374637 global                       true false
dc1   4269540889 data   pgd          London   true true    node-one

書き込みリーダーの切り替え#

グループ内の書き込みリーダーを変更して、ホストでのメンテナンスを有効にする必要がある場合、 PGD CLIは スイッチオーバー コマンドを提供します。これは、ノードが存在するグループを含む--group-name フラグと、切り替えるノードの名前を含む--node-name フラグを受け取ります。次に、次を実行できます。

pgd switchover --group-name dc1 --node-name node-two
__OUTPUT__
switchover is complete

show-groups でそれを確認できます。

pgd show-groups
__OUTPUT__
Group Group ID   Type   Parent Group Location Raft Routing Write Leader
- ---- --------   ----   ------------ -------- ---- ------- ------------
pgd   1850374637 global                       true false
dc1   4269540889 data   pgd          London   true true    node-two
PGD CLIで使用可能なコマンドの詳細については、

PGD CLI command reference を参照してください。