Re: Two started cluster on the same data directory and port - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Two started cluster on the same data directory and port
Date
Msg-id 1b893a10-1dfd-4abf-b066-9b544c2fa985@aklaver.com
Whole thread Raw
In response to Re: Two started cluster on the same data directory and port  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: Two started cluster on the same data directory and port
List pgsql-general
On 11/30/23 10:35, Adrian Klaver wrote:
> On 11/30/23 09:27, Loles wrote:
> 
>> root@hostname:~# pg_lsclusters
>> Ver Cluster  Port Status Owner    Data directory              Log file
>> *14  main     5432 online* postgres /var/lib/postgresql/14/main 
>> /var/log/postgresql/postgresql-14-main.log
>> *14  main_old 5432 online *postgres /var/lib/postgresql/14/main 
>> /var/log/postgresql/postgresql-14-main_old.log
>>
>> Start, up the two cluster.
>>
> 
> Before going any further make sure you have a current backup of the 
> database.
> 
> Hmm, are /etc/postgresql/14/main/ and /etc/postgresql/14/main_old/ 
> symlinked together?
> 
> If not what if you move the ~14/main_old/ directory somewhere else and 
> then restart Postgres?

Alright results of testing here:

tree /etc/postgresql/14
/etc/postgresql/14
├── main
│   ├── conf.d
│   ├── environment
│   ├── pg_ctl.conf
│   ├── pg_hba.conf
│   ├── pg_ident.conf
│   ├── postgresql.conf
│   └── start.conf
└── main_old
     ├── conf.d
     ├── environment
     ├── pg_ctl.conf
     ├── pg_hba.conf
     ├── pg_ident.conf
     ├── postgresql.conf
     └── start.conf

Where I just copied main/ to main_old/.

sudo pg_ctlcluster start 14 main

pg_lsclusters
Ver Cluster  Port Status Owner    Data directory              Log file
14  main     5432 online postgres /var/lib/postgresql/14/main 
/var/log/postgresql/postgresql-14-main.log
14  main_old 5432 online postgres /var/lib/postgresql/14/main 
/var/log/postgresql/postgresql-14-main_old.log


sudo pg_ctlcluster stop 14 main

pg_lsclusters
Ver Cluster  Port Status Owner    Data directory              Log file
14  main     5432 down   postgres /var/lib/postgresql/14/main 
/var/log/postgresql/postgresql-14-main.log
14  main_old 5432 down   postgres /var/lib/postgresql/14/main 
/var/log/postgresql/postgresql-14-main_old.log


cd /etc/postgresql/14/
sudo rm -r main_old/
   or
sudo cp -r main_old <some_new_path>


sudo pg_ctlcluster start 14 main

pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
14  main    5432 online postgres /var/lib/postgresql/14/main 
/var/log/postgresql/postgresql-14-main.log


I would need to understand systemd better to be sure, but I'm thinking 
the duplicated cluster are happening here:

/lib/systemd/system-generators/postgresql-generator

#!/bin/sh

# This systemd generator creates dependency symlinks that make all 
PostgreSQL
# clusters with "auto" in their start.conf file be started/stopped/reloaded
# when postgresql.service is started/stopped/reloaded.

set -eu

gendir="$1"
wantdir="$1/postgresql.service.wants"
bindir="/usr/lib/postgresql/"
#redhat# bindir="/usr/pgsql-"
pgservice="/lib/systemd/system/postgresql@.service"

mkdir -p "$wantdir"

for conf in /etc/postgresql/*/*/postgresql.conf; do
         # abort loop if glob was not expanded (but accept dead symlinks)
         if ! test -e "$conf" && ! test -L "$conf"; then continue; fi

         dir="${conf%/*}"

         # evaluate start.conf
         if [ -e "$dir/start.conf" ]; then
                 start=$(sed 's/#.*$//; /^[[:space:]]*$/d; s/^\s*//; 
s/\s*$//' "$dir/start.conf")
         else
                 start=auto
         fi
         [ "$start" = "auto" ] || continue

         verdir="${dir%/*}"
         version="${verdir##*/}"
         test -x "$bindir$version/bin/postgres" || continue # package 
got removed
         cluster="${dir##*/}"
         ln -s "$pgservice" "$wantdir/postgresql@$version-$cluster.service"
done

exit 0




> 
> Adrian Klaver
> adrian.klaver@aklaver.com
> 
> 
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




pgsql-general by date:

Previous
From: Loles
Date:
Subject: Re: Two started cluster on the same data directory and port
Next
From: Atul Kumar
Date:
Subject: replication strange behavior