Re: Different releases in the same server

From: Ron <ronljohnsonjr(at)gmail(dot)com>
To: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Different releases in the same server
Date: 2023-08-02 15:51:01
Message-ID: 0ec231ca-b339-9abc-c7eb-0a442388527e@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

When I want to run a specific version of psql, pg_dump. pg_basebackup, etc I
explicitly use fully-qualified file names. Environment variables make that
easy.  Ditto with having a different port number for each instance.

(And even though it's too late for you regarding that, I *always* install
from the postgresql.org repository.)

On 8/2/23 09:31, marco(dot)ptz(at)tiscali(dot)it wrote:
> 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
>

--
Born in Arizona, moved to Babylonia.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Karsten Hilbert 2023-08-03 16:29:45 question on auto_explain
Previous Message marco.ptz 2023-08-02 15:27:35 Re: Different releases in the same server