Command reference#
The command name for the PGD command line interface is pgd .
Synopsis#
The EDB Postgres Distributed Command Line Interface (PGD CLI) is a tool to manage your EDB Postgres Distributed cluster. It allows you to run commands against EDB Postgres Distributed clusters. You can use it to inspect and manage cluster resources.
Commands#
Cluster configuration : Cluster-level commands for managing the cluster.
pgd cluster show : Show cluster-level information.
pgd cluster verify : Verify cluster-level information.
Viewing groups and replication sets : Group-level commands for managing groups.
pgd cluster show : Show group-level information.
pgd group set-option : Set group-level options.
pgd group get-option : Get group-level options.
pgd group set-leader : Set the write leader of a group (perform a switchover).
Viewing groups and replication sets : Group related commands for listing groups. - pgd commit-scopes list : List groups.
Nodes with differences : Node-level commands for managing nodes.
Running pgd node setup : Setup a node in the cluster.
pgd cluster show : Show node-level information.
pgd node part : Part a PGD node from an active cluster.
pgd group set-option : Set node-level options.
pgd group get-option : Get node-level options.
pgd node set-config : Set node-level configuration.
pgd node get-config : Get node-level configuration.
pgd node upgrade : Perform a major version upgrade of a PGD Postgres node.
pgd node start : Start the Postgres instance on a node.
pgd node stop : Stop the Postgres instance on a node.
pgd node restart : Restart the Postgres instance on a node.
Node management : Node related commands for listing nodes. - pgd commit-scopes list : List nodes.
Monitoring degrade events : Event log commands for viewing events. - pgd cluster show : Show events.
DML and DDL replication and nonreplication : Replication related-commands for managing replication. - pgd cluster show : Show replication information.
Part a node (Raft protocol version 6003 and above) : Raft related commands for managing Raft consensus.
pgd cluster show : Show information about Raft state.
pgd raft enable : Enable the Raft consensus worker on one or more nodes.
pgd raft disable : Disable the Raft consensus worker on one or more nodes.
pgd group set-leader : Transfer Raft leadership to a specified node.
pgd raft restore : Restore Raft consensus by removing the minimum set of nodes needed.
pgd raft sync-snapshot : Synchronize Raft state across all nodes.
pgd commit-scope create : Commit scope related commands for managing PGD commit scopes.
pgd cluster show : Show information about a commit-scope.
pgd commit-scope create : Create a commit-scope.
pgd commit-scope update : Update a commit-scope.
pgd commit-scope drop : Drop a commit-scope.
pgd commit-scopes list : List commit scopes.
Using pgd assess : Assesses a Postgres server’s PGD compatibility.
pgd completion : Generate shell completion scripts.
User roles#
Each pgd command connects as a specific Postgres role, or, for a few
node-management commands, requires only OS-level access. Every command
page includes a section stating the role it needs.
These roles are created automatically when the BDR extension is installed, so you don’t need to create them yourself, only grant them to the user connecting with the CLI. See PGD predefined roles for the full privilege list behind each one.
Role |
Description |
|---|---|
bdr_superuser |
Full PGD management. Granted ALL privileges directly on every table and function in the bdr schema, plus pg_read_all_stats. This is a superset of what every other role grants, even though it isn't formal role inheritance. |
bdr_monitor |
Read-only cluster monitoring. Inherits bdr_read_all_stats and pg_read_all_stats (not pg_read_all_settings). Many show/list commands still require bdr_superuser, since they use internal functions that aren't granted to bdr_monitor. |
bdr_read_all_stats |
Reads PGD statistics and catalog views. Inherits pg_read_all_stats. |
bdr_application |
Application-level access, such as reading commit scopes. A separate role, not part of the monitoring chain. |
Postgres superuser |
Required for ALTER SYSTEM, CREATE EXTENSION, and pg_upgrade. Separate from bdr_superuser. |
OS user (pg_ctl) |
Required by pgd node start/stop/restart, which are OS-level operations. No database role is checked. |
Global Options#
All commands accept the following global options:
Short |
Long |
Description |
|---|---|---|
-f |
--config-file |
Name/Path to config file.<br/>This is ignored if --dsn flag is present<br/>Default "/etc/edb/pgd-cli/pgd-cli-config.yml" |
--dsn |
Database connection string<br/>For example "host=bdr-a1 port=5432 dbname=pgddb user=postgres"<br/>Also set by PGD_CLI_DSN environment variable. |
|
-h |
--help |
Help for pgd - will show specific help for any command used |
-o |
--output |
Output format: json, psql, modern, markdown, simple (see Output formats ) |
Additional Options#
Run pgd -V to see the version information for the pgd CLI.
Output formats#
Used with the -o /--output option:
Format |
Description |
|---|---|
simple |
Simple format - Output as a simple ASCII table (Default). |
json |
JSON format - Output as a JSON document, non-tabular |
psql |
PSQL format - Output as an ASCII table in the style of PSQL |
modern |
Modern format - Output as a table using box characters |
markdown |
Markdown table format - Output as a markdown compatible ASCII table |