show-nodes v5

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