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