pgd assess v5

Synopsis

The pgd assess commands are used to assess the suitability of a Postgres server instance for migration to the EDB Postgres Distributed cluster.

The command must be run with a DSN that connects to the Postgres server instance that you want to assess. The command will check the Postgres server instance for compatibility with the EDB Postgres Distributed cluster, and will provide a report on the compatibility of the Postgres server instance.

Options

The assess command has no command specific options.

See also Global Options.

Example

pgd assess
Output
Multiple Databases
------------------
Multiple databases cannot be part of the same PGD cluster, it's possible to
create a separate PGD cluster for each database, but it's not recommended.
See https://www.enterprisedb.com/docs/pgd/latest/planning/limitations/ for
details.

Result: Compatible, found only one user database


Sequences
---------
PGD uses distributed sequences, two types are supported, see -
https://www.enterprisedb.com/docs/pgd/latest/sequences/ for details.

Existing sequences need to be converted to distributed sequences using the
following commands:

 - SELECT bdr.alter_sequence_set_kind('public.quicktest_id_seq', 'galloc')

Result: Needs conversion to distributed sequences


Tables with Multiple Unique Indexes
-----------------------------------
Tables with multiple unique indexes may result in
"multiple_unique_conflicts" conflict, which can be problem when
using PGD as active-active system with concurrent workloads,
see https://www.enterprisedb.com/docs/pgd/latest/conflict-
management/conflicts/02_types_of_conflict/ for details.

Result: Compatible, no tables with multiple unique indexes found


Materialized Views
------------------
Materialized views are supported by PGD, however DDL commands
on them (CREATE, ALTER, DROP, REFRESH) are not replicated, see
https://www.enterprisedb.com/docs/pgd/latest/ddl/ddl-command-handling/ for
details.

Result: Compatible, no materialized views found


EPAS Queue Tables
-----------------
EPAS Queue Tables are not replicated by PGD, so they only work on per node
basis.

Result: Compatible, no EPAS Queue Tables found


LOCK TABLE Usage
----------------
LOCK TABLE is not replicated by default by PGD, if you need distributed
LOCK TABLE support, enable "bdr.lock_table_locking" on all nodes, see
https://www.enterprisedb.com/docs/pgd/latest/reference/pgd-settings/ for
details.

Result: requires static code analysis, could not analyze LOCK TABLE usage
with pg_stat_statements


DDL Command Usage
-----------------
There are some limitations in DDL command handling in PGD, see
https://www.enterprisedb.com/docs/pgd/latest/ddl/ddl-command-handling/ for
details.

Result: Cannot be checked automatically at this time, requires code analysis


LISTEN/NOTIFY Usage
-------------------
PGD is compatible with LISTEN/NOTIFY, however it works on each node
separately, just like with standard Postgres

Result: Could not analyze LISTEN/NOTIFY usage with pg_stat_statements


Row-Level Lock Usage
--------------------
Row-level locks are not replicated by default by PGD, and as such don't work
as concurrency protection across nodes, and conflict resolution will be used
instead, see https://www.enterprisedb.com/docs/pgd/latest/appusage/behavior/
for details.

Result: Requires static code analysis, could not analyze row-level locking
commands using pg_stat_statements


Advisory Lock Usage
-------------------
Advisory locks are not replicated by PGD, global
advisory lock functionality is provided instead, see
https://www.enterprisedb.com/docs/pgd/latest/reference/functions/#global-
advisory-locks for details.

Result: Requires static code analysis, could not analyze advisory lock
commands using pg_stat_statements


Large Objects
-------------
Large objects are not replicated by PGD, you can
still use "bytea" and other data types normally, see
https://www.enterprisedb.com/docs/pgd/latest/appusage/behavior/ for details.

Result: Compatible, no large objects found


Trigger/Reference Privileges
----------------------------
PGD enforces stricter access control rules on triggers and reference
columns. See https://www.enterprisedb.com/docs/pgd/latest/security/access-
control/#triggers for details.

Result: Compatible, no triggers with incompatible privileges found