PGD CLI on Cloud Service
When running a distributed high-availability cluster on Cloud Service, you can use the PGD CLI to manage cluster operations. Examples of these operations include switching over write leaders, performing cluster health checks, and viewing various details about nodes, groups, or other aspects of the cluster.
Installing the PGD CLI
To install the PGD CLI, for Debian and Ubuntu machines, replace <your-token>
with your EDB subscription token in the following command:
curl -1sLf 'https://downloads.enterprisedb.com/<your-token>/postgres_distributed/setup.deb.sh' | sudo -E bash sudo apt-get install edb-pgd5-cli
For RHEL, Rocky, AlmaLinux, or Oracle Linux machines, make the replacement in this command:
curl -1sLf 'https://downloads.enterprisedb.com/<your-token>/postgres_distributed/setup.rpm.sh' | sudo -E bash sudo yum install edb-pgd5-cli
Connecting to your Cloud Service cluster
Discovering your database connection string
To connect to your distributed high-availability Cloud Service cluster using the PGD CLI, you need to discover the database connection string. From your Console:
- Log in to the Cloud Service clusters view.
- To show only clusters that work with PGD CLI, in the filter, set Cluster Type to Distributed High Availability.
- Select your cluster.
- In the view of your cluster, select the Connect tab.
- Copy the read/write URI from the connection info. This is your connection string.
Using the PGD CLI with your database connection string
Important
PGD doesn't prompt for interactive passwords. Accordingly, you need a .pgpass
file properly configured to allow access to the cluster. Your Cloud Service cluster's connection information page has all the information needed for the file.
Without a properly configured .pgpass
, you receive a database connection error when using a PGD CLI command, even when using the correct database connection string with the --dsn
flag.
To use the PGD CLI with your database connection string, use the --dsn
flag with your PGD CLI command:
pgd nodes list --dsn "<your_connection_string>"
PGD commands in Cloud Service
The examples that follow show the most common PGD CLI commands with a Cloud Service cluster.
pgd cluster show --health
pgd cluster show --health
provides statuses with relevant messaging regarding the clock skew of node pairs, node accessibility, the current raft leader, replication slot health, and versioning consistency:
pgd cluster show --health --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Connections ----------- Checks if all BDR nodes are accessible. Result: Ok, all BDR nodes are accessible Raft ---- Raft Consensus status. Checks if all data and witness nodes are participating in raft and have the same leader. Result: Ok, raft Consensus is working correctly Replication Slots ----------------- Checks if all PGD replication slots are working correctly. Result: Ok, all PGD replication slots are working correctly Clock Skew ---------- Clock drift between nodes. Uses raft leader as reference node to calculate clock drift. High clock drift can affect conflict resolution and potentially cause inconsistency. Result: Ok, clock drift is within permissible limit Versions -------- Checks if all nodes are running the same PGD version. Result: Ok, all nodes are running the same PGD version
pgd nodes list
pgd nodes list
returns all the nodes in the distributed high-availability cluster and their summaries, including name, node id, group, and current/target state:
pgd nodes list--dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Node Name Group Name Node Kind Join State Node Status --------- ------------ --------- ---------- ----------- kaboom dc1_subgroup data ACTIVE Up kaftan dc1_subgroup data ACTIVE Up kaolin dc1_subgroup data ACTIVE Up
pgd show-groups
pgd groups show
returns all groups in your distributed high-availability Cloud Service cluster.
pgd groups show --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Group Name Parent Group Name Group Type Nodes ------------ ----------------- ---------- ----- democluster global 0 dc1_subgroup democluster data 3
pgd group set-leader
pgd group set-leader
manually changes the write leader of the group and can be used to simulate a failover.
pgd group world set-leader kaftan --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Command executed successfully
See the PGD CLI command reference for the full range of PGD CLI commands and their descriptions.
Could this page be better? Report a problem or suggest an addition!