Manually deploying PGD Essential standard architecture#
Manually deploying the PGD Essential standard architecture is a straightforward process. This architecture is designed for a single location that needs to be highly available and can recover from a disaster. It does this by having three data nodes in a multi-master replication configuration, with one node acting as the write leader.
PGD configuration#
Install PGD on each of the three nodes using the instructions in the Essentials install guide. Specifically:
Configure repositories to enable installation of the PGD packages.
Install PGD and Postgres to install the PGD packages.
Configure the PGD cluster to configure the PGD cluster.
Worked example#
This example create a three-node RHEL cluster with EDB Postgres Extended Server, using the PGD Essential Standard architecture and the following parameters:
The first node is called
node1and is located onhost-1.The second node is called
node2and is located onhost-2.The third node is called
node3and is located onhost-3.the cluster name is
pgd(the default name).The group name is
group1.The Postgres version is
17.The Postgres data directory is
/var/lib/edb-pge/17/main/.The Postgres executable files are in
/usr/edb/pge17/bin/.The Postgres database user is
postgres.The Postgres database port is
5432.The Postgres database name is
pgddb.
For the first node#
This is the common setup for all three nodes, installing the software:
export EDB_SUBSCRIPTION_TOKEN=XXXXXXXXXXXXXX
export EDB_SUBSCRIPTION_PLAN=enterprise
export EDB_REPO_TYPE=rpm
curl -1sSLf " https://downloads.enterprisedb.com/$EDB_SUBSCRIPTION_TOKEN/$EDB_SUBSCRIPTION_PLAN/setup.$EDB_REPO_TYPE.sh" | sudo -E bash
export PG_VERSION=17
export PGD_EDITION=essential
export EDB_PACKAGES="edb-as$PG_VERSION-server edb-pgd6-$PGD_EDITION-epas$PG_VERSION"
sudo dnf install -y $EDB_PACKAGES
On the first node, the following command creates the cluster and the group. It also creates the data directory and initializes the database.
sudo su - postgres
export PATH=$PATH:/usr/edb/pge17/bin/
pgd node node1 setup "host=host-1 user=postgres port=5432 dbname=pgddb" --pgdata /var/lib/edb-pge/17/main/ --group-name group1 --cluster-name pgd --create-group --initial-node-count 3
For the second node#
Repeat the software installation steps on the second node.
Then run the following command to initialize the node and join the cluster and group:
sudo su - postgres
export PATH=$PATH:/usr/edb/pge17/bin/
pgd node node2 setup "host=host-2 user=postgres port=5432 dbname=pgddb" --pgdata /var/lib/edb-pge/17/main/ --cluster-dsn "host=host-1 user=postgres port=5432 dbname=pgddb"
For the third node#
Repeat the software installation steps on the third node.
The command to initialize the node and join the cluster and group is similar to the second node but with a different host and node name:
sudo su - postgres
export PATH=$PATH:/usr/edb/pge17/bin/
pgd node node3 setup "host=host-3 user=postgres port=5432 dbname=pgddb" --pgdata /var/lib/edb-pge/17/main/ --cluster-dsn "host=host-1 user=postgres port=5432 dbname=pgddb"