If you're using a high availability PEM, you can perform a major or minor upgrade of the PEM installation.
The example commands provided assume a RHEL-based operating system.
Important
This upgrade procedure is designed to minimize downtime to your PEM cluster. However, it restarts your primary database instance once. To allow the primary to restart and avoid one of the replicas being promoted, ensure that automatic failover is disabled.
If you are using Patroni, ensure that the value of DB_UNIT_FILE in /usr/edb/pem/share/.install-config is set to patroni.
as detailed in the installation instructions.
Upgrading a deployment with colocated PEM web application and backend database
Upgrade the primary
On the primary server:
Update the PEM packages:
dnf upgrade edb-pem --allowerasingExecute the upgrade script:
/usr/edb/pem/bin/configure-pem-server.sh
Upgrade the replicas
On each replica server:
Update the PEM packages:
dnf upgrade edb-pem --allowerasingIf you're updating to PEM 10.x from PEM 9 or PEM 10.0, ensure that libpq5 is installed (this is done on the primary by
configure-pem-server.sh):dnf install libpq5Copy the following configuration files from the primary.
/etc/httpd/conf.d/edb-pem.conf /etc/httpd/conf.d/edb-ssl-pem.conf /usr/edb/pem/share/.install-config /usr/edb/pem/web/pem.wsgi /usr/edb/pem/web/config_setup.py
If you're using NGINX as your web server, also copy the following files from the primary.
/etc/edb-uwsgi/uwsgi.ini /usr/lib/tmpfiles.d/edb-uwsgi.conf /etc/systemd/system/edb-uwsgi.service /etc/edb-uwsgi/apps-available/pem.ini /etc/nginx/conf.d/edb-pem.conf
Then reload NGINX and uWSGI:
systemctl daemon-reload systemctl enable edb-uwsgi systemctl start edb-uwsgi systemctl restart nginxIf you're using Apache HTTPD as your web server, also copy the following files from the primary.
/etc/httpd/conf.d/edb-pem.conf /etc/httpd/conf.d/edb-ssl-pem.conf
If you're upgrading from PEM 10.3 or earlier, install the
edb-python312-mod-wsgipackage. PEM 10.4 introduced edb-Python 3.12 on RHEL 9, replacing system Python 3.9. This package is required for Apache HTTPD to work correctly. On the primary server,configure-pem-server.shinstalls it automatically, but on replica servers you must install it manually:dnf install edb-python312-mod-wsgiRestart Apache HTTPD:
systemctl restart httpd
The upgrade is complete.
Upgrading a deployment with separate PEM web application and backend database servers
Upgrade the primary backend
On the primary backend database server:
Update the PEM packages:
dnf upgrade edb-pem --allowerasingExecute the upgrade script:
/usr/edb/pem/bin/configure-pem-server.sh
Upgrade the replica backends
On each replica database server:
Update the PEM packages:
dnf upgrade edb-pem --allowerasingCopy the following configuration files from the primary.
/usr/edb/pem/share/.install-config
Upgrade the web applications
On each web application server:
Update the PEM packages:
dnf upgrade edb-pem --allowerasingExecute the upgrade script:
/usr/edb/pem/bin/configure-pem-server.sh
The upgrade is complete.