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 を参照してください。