For Linux-based operating systems, Postgres Pro Standard is shipped as binary packages. Each Postgres 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 install Postgres Pro on database servers, client workstations, developer workstations for developing client applications, and so on. All Postgres 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 in initdb 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 running
initdb, the trust
authentication method is used for all connections, which
is not recommended on production systems.
For details on various authentication methods available, see
Section 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.
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 as
psql, 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 from Postgres 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 |
For server installations, install at least the following packages:
postgrespro96-server
postgrespro96
postgrespro96-libs
To use additional Postgres Pro extensions, you must also install
the postgrespro96-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 your
PATH environment variable.
Installation of the
postgrespro96-server package
does not create the default database. It only creates the
postgres system user that
owns database files and server processes.
To create the default database:
On SysVinit systems, such as Red Hat Enterprise Linux 6 and its derivatives, run the following command as root:
service postgrespro-9.6 initdb
The default database is created in the
/var/lib/pgpro/9.6/data directory. To change
the default directory, modify the corresponding setting in the
/etc/sysconfig/pgsql/postgrespro-9.6 file.
On systemd-based systems, such as Red Hat Enterprise Linux 7
or CentOS 7, run the helper script pg-setup
as root:
/usr/pgpro-9.6/bin/pg-setup initdb
In this case, the peer authentication
method will be used for all local connections, while
the ident method will be used for all
network connections. For details on available authentication
methods, see Section 19.3.
To run several instances of Postgres 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 vanilla PostgreSQL, Postgres Pro, and Postgres Pro Enterprise on the same system simultaneously.
The name of sysconfig file read by
init.d script is derived from its own name.
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 for Postgres Pro server |
postgrespro-client-9.6
| Client programs for interaction with Postgres 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 from Postgres 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 |
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 or pg_probackup, are optional.
Client installations need only postgrespro-libpq5 and
postgrespro-client-9.6 packages. If you use
custom applications and do not need standard clients such as
psql, you can install the
postgrespro-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.
Debian database server packages create the default database at
the moment of server installation, and allow to create
additional ones, called clusters using
pg_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 the postgres
user is a member of ssl-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, the PGDATA parameter always
points to a subdirectory under /etc, where
only postgresql.conf,
pg_hba.conf and a few other configuration
files are stored. The actual location of data is determined by the
data_directory option in
postgresql.conf.
The postgrespro-common and
postgrespro-client-common packages provide a
complex infrastructure that allows running several versions of
PostgreSQL, Postgres Pro and Postgres 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) and
user_clusters(5).
Debian provides the script
pg_wrapper(1) to invoke
client binaries for correct version of your PostgreSQL-based product. It is linked as
/usr/bin/psql, /usr/bin/pg_dump, etc. If several PostgreSQL-based
products are installed, it invokes the most recent binaries unless
explicitly configured to do the opposite.
Debian packaging of Postgres Pro programs contains two
copies of the pg_config utility, one in the
libpq-dev package and the other in postgrespro-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 installed libpq-dev and
postgrespro-server-dev-X.X from same Postgres product.
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 library libpq
|
libpq5.9-devel
|
Development files for libpq
|
libpq5.9-devel-static
| Static libraries for compiling client programs |
postgrespro9.6
| Standard client programs, such as psql, and man pages for SQL commands |
postgrespro9.6-contrib
| Extensions loadable into Postgres 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 from Postgres 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 |
All packages containing binary files have the corresponding
-debuginfo packages.
For server installations, you need
postgrespro-9.6-server.
For a minimal client installation, only the
libpq5.9 package is required.
postgrespro-9.6 is typically needed on
clients.
pg_config utility is only
shipped as part of postgrespro-9.6-devel
package, so you need to install this package if you are going to
compile client programs that use pg_config in
the build process.
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 using
pg_upgrade utility, you need
both new and old postgres
executable files. So, pre-installation script copies the existing
postgres binary and
libpq shared library into
/usr/lib64/pgsql/9.6/backup. Use this
directory name as an argument of the
pg_upgrade
-b option.
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 as psql, 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 from Postgres 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 for Postgres Pro server |
Server installations require
postgrespro96-server,
postgrespro96, and
postgrespro96-libs packages.
To use additional Postgres Pro extensions, you must also install
the postgrespro96-contrib
package.
To start Postgres 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.
On SUSE systems, you cannot install several versions of client programs simultaneously.