pgd cluster verify
==================

Synopsis
--------

The ``pgd cluster verify`` command is used to verify the configuration
of an EDB Postgres Distributed cluster.

Users and roles
^^^^^^^^^^^^^^^

Requires the ``bdr_superuser`` role. See :ref:`User roles <User roles>`  .

Syntax
------

.. code:: plaintext

   pgd cluster verify [OPTIONS]

Options
-------

The following table lists the options available for the
``pgd cluster verify`` command:

.. csv-table::
  :header: Short,Long,Description
  :widths: 12,15,25
  :align: left
  :class: longtable

  "",--settings,Verify Postgres settings in the cluster
  "",--arch,Verify the cluster architecture
  -v,--verbose,Display verbose output

With no option set, the command verifies both ``settings`` and ``arch``
by default and the output is not verbose.

Use ``--verbose`` alongside ``--arch`` or ``--settings`` to include
detailed information and specific advice about the cluster status.

Include the global option ``-o markdown`` to display the results in an
inline Markdown format.

See also `Global Options <https://www.enterprisedb.com/docs/pgd/latest/reference/cli/command_ref/#global-options>`_  .

Examples
--------

Verify the cluster settings and architecture
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd cluster verify
   __OUTPUT__

   ##  Architecture

   Check                    Status Groups
   - ----------------------- ------ ------
   Cluster has data nodes   Ok           
   Witness nodes per group  Ok           
   Witness-only groups      Ok           
   Data nodes per group     Ok           
   Empty groups             Ok           
   Nodes have node kind set Ok

   #  Settings

   Setting Name                     Status
   - ------------------------------- ------
   bdr.accept_connections           Ok    
   bdr.ddl_locking                  Ok    
   bdr.max_writers_per_subscription Ok    
   bdr.raft_group_max_connections   Ok    
   bdr.replay_progress_frequency    Ok    
   bdr.role_replication             Ok    
   bdr.start_workers                Ok    
   bdr.writers_per_subscription     Ok    
   bdr.xact_replication             Ok    
   max_connections                  Ok    
   max_prepared_transactions        Ok    
   max_replication_slots            Ok    
   max_wal_senders                  Ok    
   max_worker_processes             Ok    
   shared_preload_libraries         Ok    
   track_commit_timestamp           Ok    
   wal_level                        Ok  

Verify the cluster architecture with verbose output
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd cluster verify --verbose --arch
   __OUTPUT__
    Check                       | Status  | Groups | Details                                            
   - ----------------------------+---------+--------+----------------------------------------------------
    Cluster has data nodes      | Ok      |        |                                                    
    Witness nodes per group     | Ok      |        |                                                    
    Witness-only groups         | Ok      |        |                                                    
    Data nodes per group        | Ok      |        |                                                    
    Empty groups                | Ok      |        |                                                    
    Nodes have node kind set    | Ok      |        |      

Verify the cluster architecture, display output Markdown formatted
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code:: shell

   pgd cluster verify --arch -o markdown
   __OUTPUT__
   Cluster has data nodes
   - ---------------------
   Cluster must have at least one data node

   Result: Ok

   Witness nodes per group
   - ----------------------
   Each data group has at most one witness node

   Result: Ok

   Witness-only groups
   - ------------------
   Cluster has at most one witness-only group

   Result: Ok

   Data nodes per group
   - -------------------
   Each data group has at least one data node

   Result: Ok

   Empty groups
   - -----------
   There are no empty groups

   Result: Ok

   Nodes have node kind set
   - -----------------------
   All nodes should have node_kind properly set

   Result: Ok
