Different releases in the same server

From: marco(dot)ptz(at)tiscali(dot)it
To: <pgsql-general(at)postgresql(dot)org>
Subject: Different releases in the same server
Date: 2023-08-02 14:31:12
Message-ID: 7229c9037c2b263c23b4a9d48d7732a2@tiscali.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi all,
we have recently started to manage a production server
running a 9.6 postgres.

[root(at)xx ~]# cat /etc/os-release
NAME="CentOS
Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel
fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7
(Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

We
have to upgrade to postgres 12.x but we have a few questions due the
configuration found in the server.
Basically there are 3 different
release present, 9.2, 9.6 ( running ), 12 (future upgrade target
release):

[root(at)xx ~]# yum list installed | grep postgres
Repodata is
over 2 weeks old. Install yum-cron? Or run: yum makecache
fast
postgresql.x86_64 9.2.24-4.el7_8
@base/7.9.2009
postgresql-libs.x86_64 9.2.24-4.el7_8
@base/7.9.2009
postgresql12.x86_64 12.14-1PGDG.rhel7 @pgdg12

postgresql12-libs.x86_64 12.14-1PGDG.rhel7 @pgdg12

postgresql12-server.x86_64 12.14-1PGDG.rhel7 @pgdg12

postgresql96.x86_64 9.6.11-1PGDG.rhel7 @pgdg96

postgresql96-contrib.x86_64 9.6.11-1PGDG.rhel7 @pgdg96

postgresql96-libs.x86_64 9.6.11-1PGDG.rhel7 @pgdg96

postgresql96-server.x86_64 9.6.11-1PGDG.rhel7 @pgdg96

the running
version is 9.6

[root(at)xx ~]# ps -ef| grep D
UID PID PPID C STIME TTY
TIME CMD
postgres 1436 1 0 Apr18 ? 06:56:14
/usr/pgsql-9.6/bin/postmaster -D /var/lib/pgsql/9.6/data/

in the server
is also installed the alternatives packages which is configured that
way:

[root(at)xx ~]# alternatives --list
libnssckbi.so.x86_64 auto
/usr/lib64/pkcs11/p11-kit-trust.so
ld auto /usr/bin/ld.bfd
mta manual
/usr/sbin/sendmail.sendmail
pgsql-ld-conf auto
/usr/pgsql-12/share/postgresql-12-libs.conf
pgsql-psql auto
/usr/pgsql-12/bin/psql
pgsql-clusterdb auto
/usr/pgsql-12/bin/clusterdb
pgsql-createdb auto
/usr/pgsql-12/bin/createdb
pgsql-createlang auto
/usr/pgsql-9.6/bin/createlang
pgsql-createuser auto
/usr/pgsql-12/bin/createuser
pgsql-dropdb auto
/usr/pgsql-12/bin/dropdb
pgsql-droplang auto
/usr/pgsql-9.6/bin/droplang
pgsql-dropuser auto
/usr/pgsql-12/bin/dropuser
pgsql-pg_basebackup auto
/usr/pgsql-12/bin/pg_basebackup
pgsql-pg_dump auto
/usr/pgsql-12/bin/pg_dump
pgsql-pg_dumpall auto
/usr/pgsql-12/bin/pg_dumpall
pgsql-pg_restore auto
/usr/pgsql-12/bin/pg_restore
pgsql-reindexdb auto
/usr/pgsql-12/bin/reindexdb
pgsql-vacuumdb auto
/usr/pgsql-12/bin/vacuumdb
pgsql-clusterdbman auto
/usr/pgsql-12/share/man/man1/clusterdb.1
pgsql-createdbman auto
/usr/pgsql-12/share/man/man1/createdb.1
pgsql-createlangman auto
/usr/pgsql-9.6/share/man/man1/createlang.1
pgsql-createuserman auto
/usr/pgsql-12/share/man/man1/createuser.1
pgsql-dropdbman auto
/usr/pgsql-12/share/man/man1/dropdb.1
pgsql-droplangman auto
/usr/pgsql-9.6/share/man/man1/droplang.1
pgsql-dropuserman auto
/usr/pgsql-12/share/man/man1/dropuser.1
pgsql-pg_basebackupman auto
/usr/pgsql-12/share/man/man1/pg_basebackup.1
pgsql-pg_dumpman auto
/usr/pgsql-12/share/man/man1/pg_dump.1
pgsql-pg_dumpallman auto
/usr/pgsql-12/share/man/man1/pg_dumpall.1
pgsql-pg_restoreman auto
/usr/pgsql-12/share/man/man1/pg_restore.1
pgsql-psqlman auto
/usr/pgsql-12/share/man/man1/psql.1
pgsql-reindexdbman auto
/usr/pgsql-12/share/man/man1/reindexdb.1
pgsql-vacuumdbman auto
/usr/pgsql-12/share/man/man1/vacuumdb.1
postgis-pgsql2shp auto
/usr/pgsql-9.6/bin/pgsql2shp
postgis-shp2pgsql auto
/usr/pgsql-9.6/bin/shp2pgsql

As far as I know, alternatives package
uses path /etc/alternatives/ and create links from /usr/bin to
/etc/alternatives
which in turn links to the binaries to the correct
selected version (/usr/pgsql-9.6/bin OR /usr/pgsql-12/bin).
We have
checked the current alternatives configuration, and it knows only about
9.6 and 12 relases:

[root(at)xx ~]# alternatives --display
pgsql-psql
pgsql-psql - status is auto.
link currently points to
/usr/pgsql-12/bin/psql
/usr/pgsql-9.6/bin/psql - priority
960
/usr/pgsql-12/bin/psql - priority 1200
Current `best' version is
/usr/pgsql-12/bin/psql.

At present in /usr/bin there are not links as
aspected for use with alternatives, but there are files belonging to
9.2
version except for pg_basebackup:

[root(at)xx ~]# ls -l
/usr/bin/p*
lrwxrwxrwx. 1 root root 37 Apr 30 08:05
/usr/bin/pg_basebackup ->
/etc/alternatives/pgsql-pg_basebackup
-rwxr-xr-x. 1 root root 28672 May
12 2020 /usr/bin/pg_config
-rwxr-xr-x. 1 root root 313120 May 12 2020
/usr/bin/pg_dump
-rwxr-xr-x. 1 root root 75672 May 12 2020
/usr/bin/pg_dumpall
-rwxr-xr-x. 1 root root 129872 May 12 2020
/usr/bin/pg_restore
-rwxr-xr-x. 1 root root 449272 May 12 2020
/usr/bin/psql

[root(at)xx ~]# /usr/bin/psql --version
psql (PostgreSQL)
9.2.24
[root(at)xx ~]# /usr/bin/pg_dump --version
pg_dump (PostgreSQL)
9.2.24

we have checked whit rpm and it seems that the 9.2 package is
the only one that put files in /usr/bin:

relase 9.2
[root(at)xx local]#
rpm -ql
postgresql.x86_64
/usr/bin/clusterdb
/usr/bin/createdb
/usr/bin/createlang
/usr/bin/createuser
/usr/bin/dropdb
/usr/bin/droplang
/usr/bin/dropuser
/usr/bin/pg_config
/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/bin/pg_restore
/usr/bin/psql
/usr/bin/reindexdb
/usr/bin/vacuumdb
/usr/lib64/pgsql

release
9.6
[root(at)xx local]# rpm -ql
postgresql96-server.x86_64
/etc/pam.d/postgresql
/etc/sysconfig/pgsql
/usr/lib/systemd/system/postgresql-9.6.service
/usr/lib/tmpfiles.d/postgresql-9.6.conf
/usr/pgsql-9.6/bin/initdb
/usr/pgsql-9.6/bin/pg_controldata
/usr/pgsql-9.6/bin/pg_ctl
/usr/pgsql-9.6/bin/pg_resetxlog
/usr/pgsql-9.6/bin/postgres
/usr/pgsql-9.6/bin/postgresql96-check-db-dir
/usr/pgsql-9.6/bin/postgresql96-setup
/usr/pgsql-9.6/bin/postmaster

release
12
[root(at)xx local]# rpm -ql
postgresql12-server.x86_64
/etc/pam.d/postgresql
/etc/sysconfig/pgsql
/usr/bin/postgresql-12-setup
/usr/lib/systemd/system/postgresql-12.service
/usr/lib/tmpfiles.d/postgresql-12.conf
/usr/pgsql-12/bin/initdb
/usr/pgsql-12/bin/pg_checksums
/usr/pgsql-12/bin/pg_controldata
/usr/pgsql-12/bin/pg_ctl
/usr/pgsql-12/bin/pg_resetwal
/usr/pgsql-12/bin/postgres
/usr/pgsql-12/bin/postgresql-12-check-db-dir
/usr/pgsql-12/bin/postgresql-12-setup
/usr/pgsql-12/bin/postmaster

Of
course we will try to test in a VM created as a clone of the producion
to verify any step (it is not our own server).
the quesions are:

Could
we have trouble having 9.6 and 12 running in the same time (we will
upgrade with pg_upgrade) in such server?
HOW can we to fix the presence
of release 9.2 files in /usr/bin?
Will the simbolic links in /usr/bin be
created by alternatives once the 9.2 release will be
dropped/deinstalled/deleted?

Any suggestion is welcome
Thanks in
advance

regards
Marco

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Christoph Moench-Tegeder 2023-08-02 14:57:59 Re: Different releases in the same server
Previous Message William Edwards 2023-08-02 08:08:56 Re: Sample pg_hba.conf allows local users to access all databases