PGD CLI on BigAnimal
When running a distributed high-availability cluster on BigAnimal, you can use the PGD CLI to manage cluster operations, such as 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, replace <your-token>
with your EDB subscription token in the following command for Debian and Ubuntu machines:
curl -1sLf 'https://downloads.enterprisedb.com/<your-token>/postgres_distributed/setup.deb.sh' | sudo -E bash sudo apt-get install edb-pgd5-cli
or in this command for RHEL, Rocky, AlmaLinux, or Oracle Linux machines:
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 BigAnimal cluster
Discovering your database connection string
To connect to your distributed high-availability BigAnimal cluster via the PGD CLI, you need to discover the database connection string from your BigAnimal console:
- Log into the BigAnimal clusters view.
- In the filter, set Cluster Type to Distributed High Availability to show only clusters that work with PGD CLI.
- 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 does not prompt for interactive passwords. Accordingly, you should have a .pgpass
file properly configured to allow access to the cluster. Your BigAnimal cluster's connection information page has all the necessary 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 show-nodes --dsn "<your_connection_string>"
PGD commands in BigAnimal
Note
There are three EDB Postgres Distributed CLI commands that don't work with distributed high-availability BigAnimal clusters: create-proxy
, delete-proxy
, and alter-proxy-option
. These are managed by BigAnimal, as BigAnimal runs on Kubernetes, and it is a technical best practice to have the Kubernetes operator handle these functions.
What follows are some examples of the most common PGD CLI commands with a BigAnimal cluster.
pgd check-health
pgd check-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 check-health --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Check Status Message ----- ------ ------- ClockSkew Ok All BDR node pairs have clockskew within permissible limit Connection Ok All BDR nodes are accessible Raft Warning There is no RAFT_LEADER, an election might be in progress Replslots Ok All BDR replication slots are working correctly Version Ok All nodes are running same BDR versions
pgd show-nodes
pgd show-nodes
returns all the nodes in the DHA cluster and their summaries, including name, node id, group, and current/target state:
$ pgd show-nodes --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Node Node ID Group Type Current State Target State Status Seq ID ---- ------- ----- ---- ------------- ------------ ------ ------ p-mbx2p83u9n-a-1 3537039754 dc1 data ACTIVE ACTIVE Up 1 p-mbx2p83u9n-a-2 3155790619 p-mbx2p83u9n-a data ACTIVE ACTIVE Up 2 p-mbx2p83u9n-a-3 2604177211 p-mbx2p83u9n-a data ACTIVE ACTIVE Up 3
pgd show-groups
pgd show-groups
returns all groups in your DHA BigAnimal cluster. It also notes which node is the current write leader of each group:
$ pgd show-groups --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
Group Group ID Type Parent Group Location Raft Routing Write Leader ----- -------- ---- ------------ -------- ---- ------- ------------ world 3239291720 global true true p-mbx2p83u9n-a-1 dc1 4269540889 data p-mbx2p83u9n-a false false p-mbx2p83u9n-a 2800873689 data world true true p-mbx2p83u9n-a-3
pgd switchover
pgd switchover
manually changes the write leader of the group, and can be used to simulate a failover.
$ pgd switchover --group-name world --node-name p-mbx2p83u9n-a-2 --dsn "postgres://edb_admin@p-mbx2p83u9n-a.pg.biganimal.io:5432/bdrdb?sslmode=require"
switchover is complete
See the PGD CLI command reference for the full range of PGD CLI commands and their descriptions.