16.1. InstallingPostgres Pro Standard on Linux
For Linux-based operating systems,Postgres Pro Standard is shipped as binary packages. EachPostgres Pro binary distribution consists of several packages, similar to native packaging of the PostgreSQL for these operating systems.
Splitting the distribution into several packages enables customizing the installation for different purposes: you can installPostgres Pro on database servers, client workstations, developer workstations for developing client applications, and so on. AllPostgres Pro distributions include separate documentation packages in English and in Russian.
Depending on your target OS distribution, the available packages and installation specifics may differ. For more information, select your target OS family:
Regardless of the target OS, when initializing the cluster, make sure to specify all the parameters that are required for your environment. All the available initialization options are described ininitdb documentation. In particular, note the following default settings you may want to override for your database cluster:
By default, when you initialize the cluster by runninginitdb, the
trust
authentication method is used for all connections, which is not recommended on production systems. For details on various authentication methods available, seeSection 19.3.The locale to be used is inherited from your system environment, which in turn affects the encoding, collation, and text search configuration that will be used for your cluster.
16.1.1. Installation on CentOS and Red Hat Enterprise Linux Systems
16.1.1.1. Choosing the Packages to Install
For Red Hat Enterprise Linux and its derivatives, such as CentOS, Oracle Linux, and Rosa Enterprise Linux Server,Postgres Pro distribution is split into the following packages:
Package | Description |
---|---|
postgrespro96 | Standard client applications such aspsql ,pg_dump , and so on |
postgrespro96-libs | Shared libraries, required to deploy client applications |
postgrespro96-server | Postgres Pro server and PL/pgSQL server-side programming language |
postgrespro96-contrib | Additional extensions and programs deployable on database servers |
pg-probackup-std-9.6 | pg_probackup utility |
postgrespro96-pg_probackup | pg_probackup package for automatic upgrades fromPostgres Pro Standard 9.6.11.1 or lower |
pg_repack | Table reorganization utility |
postgrespro96-devel | Development headers and libraries both for development of client applications and server extensions |
postgrespro96-plperl | Server-side programming language based on Perl |
postgrespro96-plpython | Server-side programming language based on Python |
postgrespro96-pltcl | Server-side programming language based on Tcl |
postgrespro96-docs | Documentation (English) |
postgrespro96-docs-ru | Documentation (Russian) |
postgrespro96-test | Test scripts for the server |
| pgpro_controldata application to display control information of aPostgreSQL/Postgres Pro database cluster and compatibility information for a cluster and/or server. |
For server installations, install at least the following packages:
postgrespro96-server
postgrespro96
postgrespro96-libs
To use additionalPostgres Pro extensions, you must also install thepostgrespro96-contrib
package.
By default, all files are installed into the/usr/pgpro-9.6
directory. Make sure/usr/pgpro-9.6/bin
is added to yourPATH
environment variable.
16.1.1.2. Creating the Default Database
Installation of thepostgrespro96-server
package does not create the default database. It only creates thepostgres
system user that owns database files and server processes.
To create the default database, run the helper scriptpg-setup
as root:
/usr/pgpro-9.6/bin/pg-setup initdb
In this case, thepeer
authentication method will be used for all local connections, while theident
method will be used for all network connections. For details on available authentication methods, seeSection 19.3.
16.1.1.3. Installing MultiplePostgres Pro Instances
To run several instances ofPostgres Pro server with different data directories, create a copy or a symlink of/etc/init.d/postgresql
with a different name, create the corresponding/etc/sysconfig
files and symlinks in runlevel directories.
If required, you can install vanillaPostgreSQL,Postgres Pro, andPostgres Pro Enterprise on the same system simultaneously.
The name ofsysconfig
file read byinit.d
script is derived from its own name.
16.1.2. Installation on Debian-Based Operating Systems
16.1.2.1. Choosing the Packages to Install
For Debian-based operating systems (Debian, Ubuntu, Astra Linux),Postgres Pro is split into following packages:
Package | Description |
postgrespro-libecpg6 | Runtime libraries for ECPG preprocessor |
postgrespro-libecpg-compat3 | Compatibility runtime for programs compiled with old ECPG |
postgrespro-libecpg-dev | ECPG preprocessor for embedded SQL |
postgrespro-libpgtypes3 | Runtime libpgtypes library for programs build with ECPG |
postgrespro-libpq5 | Runtime libraries for Postgres client programs |
postgrespro-libpq-dev | Development files for develop client programs |
postgrespro-9.6 | Postgres Pro server |
postgrespro-9.6-dbg | Debug information forPostgres Pro server |
postgrespro-client-9.6 | Client programs for interaction withPostgres Pro server |
postgrespro-common-9.6 | Tools for managing multiple server instances |
postgrespro-client-common-9.6 | Tools for choosing between different versions of client programs installed on one system |
postgrespro-contrib-9.6 | Additional modules and extensions |
postgrespro-doc-9.6 | Documentation (English) |
postgrespro-doc-ru-9.6 | Documentation (Russian) |
pg-probackup-std-9.6 | pg_probackup utility |
postgrespro-pg-probackup-9.6 | pg_probackup package for automatic upgrades fromPostgres Pro Standard 9.6.11.1 or lower |
postgrespro-plperl-9.6 | Server-side PL/Perl language |
postgrespro-plpython3-9.6 | Server-side PL/Python language based on Python 3 |
postgrespro-plpython-9.6 | Server-side PL/Python language based on Python 2 |
postgrespro-pltcl-9.6 | Server-side PL/Tcl language |
postgrespro-server-dev-9.6 | Development files to compile server extensions using PGXS framework |
| pgpro_controldata application to display control information of aPostgreSQL/Postgres Pro database cluster and compatibility information for a cluster and/or server. |
Server installations require postgrespro-9.6 package (which depends on postgrespro-contrib-9.6). Other server-related packages, such as the ones for PL languages orpg_probackup
, are optional.
Client installations need onlypostgrespro-libpq5
andpostgrespro-client-9.6
packages. If you use custom applications and do not need standard clients such aspsql
, you can install thepostgrespro-libpq5
package only.
Development files on Debian are split into the following packages:
postgrespro-libpq-dev
— development package for compiling client programs.postgrespro-libecpg-dev
— development package for programs that use ECPG Embedded SQL preprocessor.postgrespro-server-dev-9.6
— development package for compiling server extensions.
16.1.2.2. Creating the Default Database
Debian database server packages create the default database at the moment of server installation, and allow to create additional ones, called clusters usingpg_createcluster
script. All these clusters are managed using system service management facilities (SysVinit in older distributions, systemd in newer ones).
pg_createcluster
also allows to import existing databases into Debian-specific service management system. It tries to automatically enable SSL on the newly created cluster, but can do so only if thepostgres
user is a member ofssl-cert
group and there is valid certificate in/etc/ssl/certs
.
Postgres Pro distribution for Debian-based systems uses a non-standard directory layout for the database cluster. By default,Postgres Pro keeps configuration files and data in the same directory. However, Debian policy requires configuration files to be stored under/etc
. Thus, on Debian-based systems, thePGDATA
parameter always points to a subdirectory under/etc
, where onlypostgresql.conf
,pg_hba.conf
and a few other configuration files are stored. The actual location of data is determined by thedata_directory
option inpostgresql.conf
.
16.1.2.3. Installing MultiplePostgres Pro Instances
Thepostgrespro-common
andpostgrespro-client-common
packages provide a complex infrastructure that allows running several versions ofPostgreSQL,Postgres Pro andPostgres Pro Enterprise servers simultaneously, thus enabling smooth database upgrades.
For more information about Debian-specific infrastructure, see the following manual pages:pg_createcluster(8)
,pg_ctlcluster(8)
,pg_conftool(1)
,postgresql-common(5)
,postgresqlrc(5)
anduser_clusters(5)
.
Debian provides the scriptpg_wrapper(1)
to invoke client binaries for correct version of yourPostgreSQL-based product. It is linked as/usr/bin/psql
,/usr/bin/pg_dump
, etc. If severalPostgreSQL-based products are installed, it invokes the most recent binaries unless explicitly configured to do the opposite.
Note
Debian packaging ofPostgres Pro programs contains two copies of thepg_config utility, one in thelibpq-dev
package and the other inpostgrespro-server-dev-9.6
package. It is because both client programs and server extensions use this utility to determine location of Postgres development files. So, if you are planning to develop both client applications and server extensions on same system, make sure that you have installedlibpq-dev
andpostgrespro-server-dev-X.X
from same Postgres product.
16.1.3. Installation on ALT Linux
16.1.3.1. Choosing the Packages to Install
For ALT Linux,Postgres Pro is split into the following packages:
Package | Description |
libecpg6.8 | Runtime libraries for programs using ECPG |
libecpg6.8-devel | ECPG embedded SQL preprocessor |
libecpg6.8-devel-static | Static libraries for ECPG |
libpq5.9 | Client librarylibpq |
libpq5.9-devel | Development files forlibpq |
libpq5.9-devel-static | Static libraries for compiling client programs |
postgrespro9.6 | Standard client programs, such aspsql, and man pages for SQL commands |
postgrespro9.6-contrib | Extensions loadable intoPostgres Pro server |
postgrespro9.6-devel | Files to compile server extensions using PGXS framework |
postgrespro9.6-devel-static | Static libraries needed to compile extensions |
postgrespro9.6-docs | Documentation (English) |
postgrespro9.6-docs-ru | Documentation (Russian) |
postgrespro9.6-perl | PL/Perl programming language |
pg-probackup-std-9.6 | pg_probackup utility |
postgrespro9.6-pg_probackup | pg_probackup package for automatic upgrades fromPostgres Pro Standard 9.6.11.1 or lower |
postgrespro9.6-python | PL/Python programming language |
postgrespro9.6-server | Postgres Pro Enterprise server |
postgrespro9.6-tcl | PL/Tcl programming language |
| pgpro_controldata application to display control information of aPostgreSQL/Postgres Pro database cluster and compatibility information for a cluster and/or server. |
All packages containing binary files have the corresponding-debuginfo
packages.
For server installations, you needpostgrespro-9.6-server
. For a minimal client installation, only thelibpq5.9
package is required.postgrespro-9.6
is typically needed on clients.
pg_config utility is only shipped as part ofpostgrespro-9.6-devel
package, so you need to install this package if you are going to compile client programs that usepg_config in the build process.
16.1.3.2. Installing MultiplePostgres Pro Instances
On ALT Linux, you can only have a single PostgreSQL installation on your system at a time. If you are installing a newer version over the old one, new binaries replace the old ones. To perform database upgrade usingpg_upgrade
utility, you need both new and oldpostgres
executable files. So, pre-installation script copies the existingpostgres
binary andlibpq
shared library into/usr/lib64/pgsql/9.6/backup
. Use this directory name as an argument of thepg_upgrade
-b
option.
16.1.4. Installation on the SUSE Linux
16.1.4.1. Choosing the Packages to Install
For SUSE systems,Postgres Pro is split into following packages:
Package | Description |
---|---|
libecpg6 | Runtime libraries for programs using ECPG |
libpq5 | Runtime libraries for Postgres client programs |
postgrespro96 | Standard client programs, such aspsql, and man pages for SQL commands |
postgrespro96-contrib | Loadable modules and extensions for server |
postgrespro96-devel | Development files for both client programs and server extensions |
postgrespro96-docs | Documentation (English) |
postgrespro96-docs-ru | Documentation (Russian) |
pg-probackup-std-9.6 | pg_probackup utility |
postgrespro96-pg_probackup | pg_probackup package for automatic upgrades fromPostgres Pro Standard 9.6.11.1 or lower |
postgrespro96-plperl | PL/Perl programming language |
postgrespro96-plpython | PL/Python programming language |
postgrespro96-pltcl | PL/Tcl programming language |
postgrespro96-server | Postgres Pro server |
postgrespro96-test | Regression test suite forPostgres Pro server |
| pgpro_controldata application to display control information of aPostgreSQL/Postgres Pro database cluster and compatibility information for a cluster and/or server. |
Server installations requirepostgrespro96-server
,postgrespro96
, andpostgrespro96-libs
packages. To use additionalPostgres Pro extensions, you must also install thepostgrespro96-contrib
package.
16.1.4.2. Creating the Default Database
To startPostgres Pro server after installation of the server package, run the following command as root:
service postgresql start
The default database in SUSE is created upon the first start of service. You can customize its location, locale, and other parameters in/etc/sysconfig/postgrespro
.
16.1.4.3. Installing MultiplePostgres Pro Instances
On SUSE systems, you cannot install several versions of client programs simultaneously.
16.1.5. Antivirus Considerations
It is strongly recommended to avoid using antivirus software on systems wherePostgres Pro is running because it may cause additional load on your environment and result in unexpected database behavior that would lead to performance and reliability issues. If you need to use antivirus software, make sure to exclude the following directories from virus scanning as they do not contain any executable files:
PGDATA
directory that stores main cluster dataPaths to createdtablespaces