Skip to content

Install Percona Distribution for PostgreSQL on Red Hat Enterprise Linux and derivatives

This document describes how to install Percona Distribution for PostgreSQL from Percona repositories on RPM-based distributions such as Red Hat Enterprise Linux and compatible derivatives.

Platform specific notes

To install Percona Distribution for PostgreSQL, do the following:

For Percona Distribution for PostgreSQL packages

Install the epel-release package:

$ sudo yum -y install epel-release
$ sudo yum repolist

Disable the postgresql and llvm-toolsetmodules:

$ sudo dnf module disable postgresql llvm-toolset

For percona-postgresql{{pgversion}}-devel package

You may need to install the percona-postgresql{{pgversion}}-devel package when working with some extensions or creating programs that interface with PostgreSQL database. This package requires dependencies that are not part of the Distribution, but can be installed from the specific repositories:

$ sudo yum --enablerepo=codeready-builder-for-rhel-8-rhui-rpms install perl-IPC-Run -y
$ sudo dnf install dnf-plugins-core
$ sudo dnf module enable llvm-toolset
$ sudo dnf config-manager --set-enabled powertools
$ sudo dnf config-manager --set-enabled ol8_codeready_builder install perl-IPC-Run -y
$ sudo dnf install dnf-plugins-core
$ sudo dnf module enable llvm-toolset
$ sudo dnf config-manager --set-enabled crb
$ sudo dnf install perl-IPC-Run -y
$ sudo dnf config-manager --set-enabled ol9_codeready_builder install perl-IPC-Run -y

For percona-patroni package

To install Patroni on Red Hat Enterprise Linux 9 and compatible derivatives, enable the epel repository

$ sudo yum install epel-release

For pgpool2 extension

To install pgpool2 on Red Hat Enterprise Linux and compatible derivatives, enable the codeready builder repository first to resolve the dependencies conflict.

The following are commands for Red Hat Enterprise Linux 9 and derivatives. For Red Hat Enterprise Linux 8, replace the operating system version in the commands accordingly.

$ sudo dnf config-manager --set-enabled codeready-builder-for-rhel-9-x86_64-rpms
$ sudo dnf config-manager --set-enabled crb
$ sudo dnf config-manager --set-enabled ol9_codeready_builder

For PostGIS

The following commands provide instructions how to enable required repositories and modules on Red Hat Enterprise Linux 9 and derivatives.

For Red Hat Enterprise Linux 8 and derivatives, replace the operating system version in the commands accordingly.

  1. Install epel repository

    $ sudo yum install epel-release
    
  2. Enable the llvm-toolset dnf module

    $ sudo dnf module enable llvm-toolset
    
  3. Enable the codeready builder repository to resolve dependencies conflict.

    $ sudo dnf config-manager --set-enabled codeready-builder-for-rhel-9-x86_64-rpms
    
  1. Install epel repository

    $ sudo yum install epel-release
    
  2. Enable the llvm-toolset dnf module

    $ sudo dnf module enable llvm-toolset
    
  3. Enable the codeready builder repository to resolve dependencies conflict.

    $ sudo dnf install dnf-plugins-core
    $ sudo dnf config-manager --set-enabled crb
    
  1. Install epel repository

    $ sudo yum install epel-release
    
  2. Enable the llvm-toolset dnf module

    $ sudo dnf module enable llvm-toolset
    
  3. Enable the codeready builder repository to resolve dependencies conflict.

    $ sudo dnf config-manager --set-enabled ol9_codeready_builder
    
  1. Configure the Oracle-Linux repository. Create the /etc/yum.repos.d/oracle-linux-ol9.repo file to install the required dependencies:

    /etc/yum.repos.d/oracle-linux-ol9.repo
    [ol9_baseos_latest]
    name=Oracle Linux 9 BaseOS Latest ($basearch)
    baseurl=https://yum.oracle.com/repo/OracleLinux/OL9/baseos/latest/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1
    enabled=1     
    
    [ol9_appstream]
    name=Oracle Linux 9 Application Stream ($basearch)
    baseurl=https://yum.oracle.com/repo/OracleLinux/OL9/appstream/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1
    enabled=1     
    
    [ol9_codeready_builder]
    name=Oracle Linux 9 CodeReady Builder ($basearch) - Unsupported
    baseurl=https://yum.oracle.com/repo/OracleLinux/OL9/codeready/builder/$basearch/
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    gpgcheck=1
    enabled=1
    
  2. Download the right GPG key for the Oracle Yum Repository:

    $ wget https://yum.oracle.com/RPM-GPG-KEY-oracle-ol9 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
    
  3. Install epel repository

    $ sudo yum install epel-release
    

Procedure

Run all the commands in the following sections as root or using the sudo command.

Install dependencies

Install curl for Telemetry. We use it to better understand the use of our products and improve them.

$ sudo yum -y install curl

Configure the repository

  1. Install the percona-release repository management tool to subscribe to Percona repositories:

    $ sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
    
  2. Enable the repository

Percona provides two repositories for Percona Distribution for PostgreSQL. We recommend enabling the Major release repository to timely receive the latest updates.

To enable a repository, we recommend using the setup command:

$ sudo percona-release setup ppg{{pgversion}}

Install packages

$ sudo yum install percona-ppg-server{{pgversion}}
  1. Install the PostgreSQL server package:

    $ sudo yum install percona-postgresql{{pgversion}}-server
    
  2. Install the components:

    Install pg_repack:

    $ sudo yum install percona-pg_repack{{pgversion}}
    

    Install pgaudit:

    $ sudo yum install percona-pgaudit{{pgversion}}
    

    Install pgBackRest:

    $ sudo yum install percona-pgbackrest
    

    Install Patroni:

    $ sudo yum install percona-patroni
    

    Install pg_stat_monitor:

    Install pgBouncer:

    $ sudo yum install percona-pgbouncer
    

    Install pgAudit-set_user:

    $ sudo yum install percona-pgaudit{{pgversion}}_set_user
    

    Install pgBadger:

    $ sudo yum install percona-pgbadger
    

    Install wal2json:

    $ sudo yum install percona-wal2json{{pgversion}}
    

    Install PostgreSQL contrib extensions:

    $ sudo yum install percona-postgresql{{pgversion}}-contrib
    

    Install HAProxy

    $ sudo yum install percona-haproxy
    

    Install pg_gather

    $ sudo yum install percona-pg_gather
    

    Install pgpool2

    1. Check the platform specific notes
    2. Install the extension

      $ sudo yum install percona-pgpool-II-pg{{pgversion}}
      

Some extensions require additional setup in order to use them with Percona Distribution for PostgreSQL. For more information, refer to Enabling extensions.

Start the service

After the installation, the default database storage is not automatically initialized. To complete the installation and start Percona Distribution for PostgreSQL, initialize the database using the following command:

$ /usr/pgsql-{{pgversion}}/bin/postgresql-{{pgversion}}-setup initdb

Start the PostgreSQL service:

$ sudo systemctl start postgresql-{{pgversion}}

Connect to the PostgreSQL server

By default, postgres user and postgres database are created in PostgreSQL upon its installation and initialization. This allows you to connect to the database as the postgres user.

$ sudo su postgres

Open the PostgreSQL interactive terminal:

$ psql

Hint

You can connect to psql as the postgres user in one go:

$ sudo su - postgres -c psql

To exit the psql terminal, use the following command:

$ \q

Get expert help

If you need assistance, visit the community forum for comprehensive and free database knowledge, or contact our Percona Database Experts for professional support and services.