show-nodes#

Shows all nodes in the EDB Postgres Distributed cluster and their summary.

Synopsis#

Shows all nodes in the EDB Postgres Distributed cluster and their summary, including name, node id, group, and current/target state.

Node States

  • NONE: Node state is unset when the worker starts, expected to be set quickly to the current known state.

  • CREATED: bdr.create_node() has been executed, but the node is not a member of any EDB Postgres Distributed cluster yet.

  • JOIN_START: bdr.join_node_group() begins to join the local node to an existing EDB Postgres Distributed cluster.

  • JOINING: The node join has started and is currently at the initial sync phase, creating the schema and data on the node.

  • CATCHUP: Initial sync phase is completed; now the join is at the last step of retrieving and applying transactions that were performed on the upstream peer node since the join started.

  • STANDBY: Node join has finished, but not yet started to broadcast changes. All joins spend some time in this state, but if defined as a Logical Standby, the node will continue in this state.

  • PROMOTE: Node was a logical standby and we just called bdr.promote_node to move the node state to ACTIVE. These two PROMOTE states have to be coherent to the fact, that only one node can be with a state higher than STANDBY but lower than ACTIVE.

  • PROMOTING: Promotion from logical standby to full BDR node is in progress.

  • ACTIVE: The node is a full BDR node and is currently ACTIVE. This is the most common node status.

  • PART_START: Node was ACTIVE or STANDBY and we just called bdr.part_node to remove the node from the EDB Postgres Distributed cluster.

  • PARTING: Node disconnects from other nodes and plays no further part in consensus or replication.

  • PART_CATCHUP: Non-parting nodes synchronize any missing data from the recently parted node.

  • PARTED: Node parting operation is now complete on all nodes.

Only one node at a time can be in either of the states PROMOTE or PROMOTING.

Note that the read-only state of a node, as shown in the Current State or in the Target State columns, is indicated as STANDBY.

pgd show-nodes [flags]

Examples#

Example 1 (3 node cluster, bdr-a1 and witness-a are up, bdr-a2 is down)

$ pgd show-nodes

Node      Node ID    Group   Type    Current State Target State Status      Seq ID
----      -------    -----   ----    ------------- ------------ ------      ------
bdr-a1    3136956818 group_a data    ACTIVE        ACTIVE       Up          1
bdr-a2    2133699692 group_a data    ACTIVE        ACTIVE       Unreachable 2
witness-a 3889635963 group_a witness ACTIVE        ACTIVE       Up          3

Example 2 (multi-group cluster with witness, logical standby and
subscriber-only nodes)
Note: In contrast to logical standby, the subscriber-only nodes are fully
joined node to the cluster

$ pgd show-nodes

Node               Node ID    Group    Type            Current State Target State Status Seq ID
----               -------    -----    ----            ------------- ------------ ------ ------
bdr-a1             3136956818 group_a  data            ACTIVE        ACTIVE       Up     6
bdr-a2             2133699692 group_a  data            ACTIVE        ACTIVE       Up     3
logical-standby-a1 1140256918 group_a  standby         STANDBY       STANDBY      Up     9
witness-a          3889635963 group_a  witness         ACTIVE        ACTIVE       Up     7
bdr-b1             2380210996 group_b  data            ACTIVE        ACTIVE       Up     1
bdr-b2             2244996162 group_b  data            ACTIVE        ACTIVE       Up     2
logical-standby-b1 3541792022 group_b  standby         STANDBY       STANDBY      Up     10
witness-b          661050297  group_b  witness         ACTIVE        ACTIVE       Up     5
witness-c          1954444188 group_c  witness         ACTIVE        ACTIVE       Up     4
subscriber-only-c1 2448841809 group_so subscriber-only ACTIVE        ACTIVE       Up     8

Options#

-h, --help   help for show-nodes

Options inherited from parent commands#

-f, --config-file string   config file; ignored if
                           --dsn flag is present (default "/etc/edb/pgd-cli/pgd-cli-config.yml")
    --dsn string           database connection string
                           e.g."host=bdr-a1 port=5432 dbname=bdrdb user=postgres "
-L, --log-level string     logging level: debug, info, warn, error (default "error")
-o, --output string        output format: json, yaml