Installing PGAA on WarehousePG v1.9
Prerequisites
Before installing PGAA, ensure you have:
- A running WarehousePG 7.4 or later cluster on x86_64 RHEL 8 or RHEL 9.
- Access to the EDB repository configured on the coordinator host.
- The
gpadminuser with sudo privileges on all hosts.
All steps must be performed as the gpadmin user unless otherwise noted.
Downloading and installing the package
Set up your EDB subscription credentials on the coordinator:
export EDB_SUBSCRIPTION_TOKEN=<your-token> export EDB_SUBSCRIPTION_PLAN=gpsupp curl -1sSLf "https://downloads.enterprisedb.com/$EDB_SUBSCRIPTION_TOKEN/$EDB_SUBSCRIPTION_PLAN/setup.rpm.sh" | sudo -E bash sudo dnf download edb-whpg7-pgaa
edb-whpg7-pgfsis a declared dependency ofedb-whpg7-pgaaand will be downloaded automatically.On the coordinator, create a file
all_hostslisting all hosts in the WHPG cluster. For example:cdw sdw1 sdw2
Transfer and install the packages on all hosts:
gpssh -f all_hosts -e "scp gpadmin@$(hostname):~/edb-whpg7-pgaa*.rpm /tmp/ && sudo dnf install -y /tmp/edb-whpg7-pgaa*.rpm"
Verify that the packages are installed on all hosts:
gpssh -f all_hosts -e 'rpm -q edb-whpg7-pgaa edb-whpg7-pgfs'
Enabling the extension
In WarehousePG installations, Seafowl is managed as a systemd service rather than as a background worker controlled by the extension itself. The RPM installs the systemd unit file automatically.
On the coordinator, append PGAA and PGFS to the list of shared libraries using a comma separator, and restart the cluster.
gpconfig -c shared_preload_libraries -v '<other_libraries>,pgaa,pgfs' gpstop -ra
Enable and start the Seafowl service on all hosts, including the coordinator and every segment host:
gpssh -f all_hosts -e 'sudo systemctl enable seafowl && sudo systemctl start seafowl'
Note
If installing in an environment where systemd is not available (for example, Docker), you must daemonize the Seafowl worker through some other means, such as a supervisor process or an entrypoint script. The critical constraint is that exactly one Seafowl worker must be running per host. Running multiple workers on the same host, or failing to run one at all, will cause problems.
Note
Seafowl exposes a Prometheus metrics endpoint on port 9090 by default. If Prometheus is already running on the same host and bound to port 9090, Seafowl will fail to start. To resolve the conflict, edit the value of
portin/etc/edb/pgaa/seafowl.tomlon the affected host and restart the Seafowl service.Connect to the coordinator and create the extension on each database where you want to use PGAA:
CREATE EXTENSION IF NOT EXISTS pgaa CASCADE;
Using
CASCADEensures that required dependencies, such as the Postgres File System (PGFS), are automatically installed.
Verifying the installation
Confirm that the extension is active using the
\dxmeta-command or by calling the version function:SELECT pgaa.pgaa_version();
Verify that the Seafowl service is running on all hosts:
gpssh -f all_hosts -e 'sudo systemctl status seafowl --no-pager'
Checking service health and logs
Seafowl writes structured JSON logs via systemd.
To check the status and recent log output on a single host:
sudo systemctl status seafowlTo stream live logs:
sudo journalctl -u seafowl -f
To check logs across all hosts at once:
gpssh -f all_hosts -e 'sudo journalctl -u seafowl --no-pager -n 50'
For WarehousePG coordinator and segment logs, see Viewing the database server log files.