Migration vers Buster : "dpkg/apt semble avoir laissé des choses non configurées"

Ça me renvoie ceci:

~# pg_upgradecluster -m upgrade 9.6 main
Error: target cluster 11/main already exists

tu peux voir les cluster avec pg_lscluster et éventuellement te connecter sur le 11 voir les bases avec un psql -p5333 -l (a adapter au numéro de port que te renvois le pg_lscluster.
Sinon tu peux essayé de trash le cluster 11 et le re upgrade sa dépend de retour des commandes précédente.

1 Like

woaoo ^^ j’ai peur de pas réussir a suivre :smiley:

~# pg_lscluster
-bash: pg_lscluster: command not found

J’obtiens ceci quand je fais la première commande. Désolé mes connaissances en CLI sont plus que limitées :smiley:

j ai le meme pb beer2beer.
je tente ça :slight_smile:

sudo pg_createcluster 11 main
Creating new PostgreSQL cluster 11/main …
/usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5
The files belonging to this database system will be owned by user “postgres”.
This user must also own the server process.

The database cluster will be initialized with locale “en_US.UTF-8”.
The default database encoding has accordingly been set to “UTF8”.
The default text search configuration will be set to “english”.

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/11/main … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers … 128MB
selecting default timezone … Europe/Paris
selecting dynamic shared memory implementation … posix
creating configuration files … ok
running bootstrap script … ok
performing post-bootstrap initialization … ok
syncing data to disk … ok

Success. You can now start the database server using:

pg_ctlcluster 11 main start

Ver Cluster Port Status Owner Data directory Log file
11 main 5433 down postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
admin@ctrl:~$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5432 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
11 main 5433 down postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log
admin@ctrl:~$ sudo pg_dropcluster 11 main --stop
admin@ctrl:~$ sudo pg_upgradecluster 9.6 main
Disabling connections to the old cluster during upgrade…
Restarting old cluster with restricted connections…
Creating new PostgreSQL cluster 11/main …
/usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5 --encoding UTF8 --lc-collate en_US.UTF-8 --lc-ctype en_US.UTF-8
The files belonging to this database system will be owned by user “postgres”.
This user must also own the server process.

The database cluster will be initialized with locale “en_US.UTF-8”.
The default text search configuration will be set to “english”.

Data page checksums are disabled.

fixing permissions on existing directory /var/lib/postgresql/11/main … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers … 128MB
selecting default timezone … Europe/Paris
selecting dynamic shared memory implementation … posix
creating configuration files … ok
running bootstrap script … ok
performing post-bootstrap initialization … ok
syncing data to disk … ok

Success. You can now start the database server using:

pg_ctlcluster 11 main start

Ver Cluster Port Status Owner Data directory Log file
11 main 5433 down postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log

Disabling connections to the new cluster during upgrade…
Roles, databases, schemas, ACLs…
set_config

(1 row)

set_config

(1 row)

set_config

(1 row)

set_config

(1 row)

set_config

(1 row)

set_config

(1 row)

set_config

(1 row)

set_config

(1 row)

Fixing hardcoded library paths for stored procedures…
Upgrading database postgres…
Analyzing database postgres…
Fixing hardcoded library paths for stored procedures…
Upgrading database mastodon_production…

pour l instant ça semble bien parti

1 Like

je vous redis

1 Like

l’objectif est de savoir quel cluster sont présent sur ta machine
tu peux check les paquets postgresql installé sur ta machine
dpkg -l "*postgres*"
tu peux localiser un binaire avec locate
tu devras peut être installer locate et update la base interne avec updatedb
sudo apt install locate
sudo updatedb
ensuite
locate pg_lscluster
/usr/bin/pg_lsclusters /usr/share/man/man1/pg_lsclusters.1.gz

@philko le nouveau cluter n’écoute pas sur le même port cela ne va peut être pas fonctionner tant que tu ne l’auras changer en 5432 (le nouveau cluster en version 11) a confirmer

1 Like

Merci @cjinh

Voici ce que donne la commande :

# dpkg -l "*postgres*"
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                     Version         Architecture Description
+++-========================-===============-============-========================================================
un  lua-dbi-postgresql       <none>          <none>       (no description available)
un  odbc-postgresql          <none>          <none>       (no description available)
ii  postgresql               11+200+deb10u3  all          object-relational SQL database (supported version)
ii  postgresql-11            11.7-0+deb10u1  armhf        object-relational SQL database, version 11 server
un  postgresql-11-citus      <none>          <none>       (no description available)
un  postgresql-11-cron       <none>          <none>       (no description available)
un  postgresql-11-pgextwlist <none>          <none>       (no description available)
un  postgresql-11-pglogical  <none>          <none>       (no description available)
un  postgresql-11-plsh       <none>          <none>       (no description available)
un  postgresql-11-rum        <none>          <none>       (no description available)
un  postgresql-11-wal2json   <none>          <none>       (no description available)
un  postgresql-9.1           <none>          <none>       (no description available)
ii  postgresql-9.6           9.6.17-0+deb9u1 armhf        object-relational SQL database, version 9.6 server
un  postgresql-client        <none>          <none>       (no description available)
ii  postgresql-client-11     11.7-0+deb10u1  armhf        front-end programs for PostgreSQL 11
ii  postgresql-client-9.6    9.6.17-0+deb9u1 armhf        front-end programs for PostgreSQL 9.6
ii  postgresql-client-common 200+deb10u3     all          manager for multiple PostgreSQL client versions
ii  postgresql-common        200+deb10u3     all          PostgreSQL database-cluster manager
ii  postgresql-contrib       11+200+deb10u3  all          additional facilities for PostgreSQL (supported version)
un  postgresql-contrib-11    <none>          <none>       (no description available)
ii  postgresql-contrib-9.6   9.6.17-0+deb9u1 armhf        additional facilities for PostgreSQL
un  postgresql-doc           <none>          <none>       (no description available)
un  postgresql-doc-11        <none>          <none>       (no description available)
un  postgresql-doc-9.6       <none>          <none>       (no description available)

J’ai installé “locate”
puis fait “updatedb”
et ensuite j’ai pas bien compris si c’est deux commandes séparées ou une seule ?
locate pg_lscluster
/usr/bin/pg_lsclusters /usr/share/man/man1/pg_lsclusters.1.gz

mais ca donne ceci:

J’ai ensuite ré-éssayer de terminer l’étape 17 de la migration mais j’ai toujours une erreur:
https://paste.yunohost.org/raw/itaqomufuc

moi je me demande si mobilizon ne fait pas un pb

mobilizon@mobilizon FATAL: no pg_hba.conf entry for host “127.0.0.1”, user “mobilizon”, database “mobilizon”, SSL off dans
sudo cat /var/log/postgresql/postgresql-11-main.log

en tk le sudo updatedb est surper long et pas commenté

1 Like

pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5434 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
11 main 5433 down postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log

cjinh comment on change le port ?

pour modifier le port d’écoute de postgresql, il faut modifier le fichier de config du cluster
@philko tu as juste a modifier
/etc/postgresql/11/main/postgresql.conf

port = 5432 # (change requires restart)
# supported by the operating system:
# supported by the operating system:
# %r = remote host and port
Cependant d’apres l’erreur dans tes logs cela a l’air de venir d’un fichier de conf manquant vérifie si tu as bien /etc/postgresql/11/main/pg_hba.conf
Une fois le port changé essayé de lancer la base avec systemctl start postgresql@11-main.service et vois si tu as des erreurs

@beer2beer tu peux essayé cette commande : /usr/bin/pg_lsclusters
a priori lors de l’update tu as bien mis a jour le paquet de postgresql cependant lors de l’update, yunohost est censé “copier” la base postgresql en version 9.6 vers 11.
On a essayé pg_upgradecluster -m upgrade 9.6 main et cela te renvoi que le cluster en version 11 existe déjà. donc ton cluster a peut être bien été copier

1 Like

Bonjour @cjinh et merci pour ton aide ^^
Voici ce que j’obtiens quand je tape la commande:

~# /usr/bin/pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.6 main    5432 down   postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
11  main    5433 down   postgres /var/lib/postgresql/11/main  /var/log/postgresql/postgresql-11-main.log

ok parfait donc on voit que tes 2 cluster sont éteint. et on vois bien ton ancien qui tournait avant la maj debian 10 en 9.6 et le nouveau qui est créer lors de l’upgrade le 11.

Change le port d’écoute du cluster 11 en 5432 comme j’explique plus haut et essayé de démarrer le cluster 11 avec systemctl start postgresql@11-main.service

1 Like

Voila:

~# nano /etc/postgresql/11/main/postgresql.conf
( j’ai modifié le port en 5432 )

~# systemctl start postgresql@11-main.service

Job for postgresql@11-main.service failed because the service did not take the steps required by its unit configuration.
See "systemctl status postgresql@11-main.service" and "journalctl -xe" for details.

J’ai tenté de redémarrer et de refaire la commande mais j’obtiens le même résultat.

J’ai donc essayé: systemctl status postgresql@11-main.service

Puis : journalctl -xe

-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit session-c1.scope has finished successfully.
-- 
-- The job identifier is 652.
Aug 02 17:53:22 domaine.tld sshd[1539]: Starting session: shell on pts/0 for root from XXX.XXX.XXX.XX port 34672 id 0
Aug 02 17:53:50 domaine.tld systemd[1]: Starting PostgreSQL Cluster 11-main...
-- Subject: A start job for unit postgresql@11-main.service has begun execution
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit postgresql@11-main.service has begun execution.
-- 
-- The job identifier is 732.
Aug 02 17:53:51 domaine.tld postgresql@11-main[1582]: Error: Port conflict: another instance is already running on /var/run/postgresql with port 5432
Aug 02 17:53:51 domaine.tld systemd[1]: postgresql@11-main.service: Can't open PID file /run/postgresql/11-main.pid (yet?) after start: No such file or directory
Aug 02 17:53:51 domaine.tld systemd[1]: postgresql@11-main.service: Failed with result 'protocol'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- The unit postgresql@11-main.service has entered the 'failed' state with result 'protocol'.
Aug 02 17:53:51 domaine.tld systemd[1]: Failed to start PostgreSQL Cluster 11-main.
-- Subject: A start job for unit postgresql@11-main.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
-- 
-- A start job for unit postgresql@11-main.service has finished with a failure.
-- 
-- The job identifier is 732 and the job result is failed.
Aug 02 17:55:01 domaine.tld CRON[1589]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug 02 17:55:01 domaine.tld CRON[1593]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Aug 02 17:55:01 domaine.tld CRON[1589]: pam_unix(cron:session): session closed for user root
Aug 02 17:55:22 domaine.tld postfix/submission/smtpd[1600]: connect from unknown[XX.XXX.XXX.XX]
Aug 02 17:55:23 domaine.tld postfix/submission/smtpd[1600]: disconnect from unknown[XX.XXX.XXX.XX] ehlo=1 auth=0/1 rset=0/1 quit=1 commands=2/4
Aug 02 17:55:49 domaine.tld postfix/submission/smtpd[1600]: connect from unknown[XX.XXX.XXX.XX]
Aug 02 17:55:49 domaine.tld postfix/submission/smtpd[1600]: disconnect from unknown[XX.XXX.XXX.XX] ehlo=1 auth=0/1 rset=0/1 quit=1 commands=2/4
Aug 02 17:56:31 domaine.tld dovecot[1200]: config: Warning: please set ssl_dh=</etc/dovecot/dh.pem
Aug 02 17:56:31 domaine.tld dovecot[1200]: config: Warning: You can generate it with: dd if=/var/lib/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /etc/dovecot/dh.
Aug 02 17:56:32 domaine.tld dovecot[1200]: imap-login: Disconnected (disconnected before auth was ready, waited 1 secs): user=<>, rip=XXX.XXX.XXX.XX, lip=XXX.XXX.XXX.XX, TLS handshaking: S
Aug 02 17:56:32 domaine.tld dovecot[1200]: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=XXX.XXX.XXX.XX, lip=XXX.XXX.XXX.XX, TLS handshaking: SSL_accept() failed: err
Aug 02 17:56:32 domaine.tld dovecot[1200]: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=XXX.XXX.XXX.XX, lip=XXX.XXX.XXX.XX, TLS handshaking: SSL_accept() failed: err

ok le cluster 11 veut pas démarrer car l’ancien cluster écoute sur le même port, change le port d’écoute de l’ancien voir c’est la même procédure que pour le 11 sauf que le chemin est le suivant /etc/postgresql/9.6/main/postgresql.conf
tu peux mettre 5433 comme port si tu veux.

1 Like

Ça me renvoie le même message on dirait:

le cluster en 9.6 a l’air de s’être lancé.
que renvois sudo systemctl status postgresql@11-main.service
peux-tu faire un ls -al /etc/postgresql/11/main
l’objectif comme tu es sous buster serait d’utiliser le cluster en version 11 et pas le 9.6.
Il se peut que comme @philko il te manque un fichier de conf

1 Like

Je vois ^^, je t’avoue que je suis un peu largué et je te remercie vraiment pour ton aide en tout cas <3

Ça donne ceci:
~# sudo systemctl status postgresql@11-main.service

● postgresql@11-main.service - PostgreSQL Cluster 11-main
   Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; vendor preset: enabled)
   Active: failed (Result: protocol) since Sun 2020-08-02 18:08:51 CEST; 10min ago
  Process: 2009 ExecStart=/usr/bin/pg_ctlcluster --skip-systemctl-redirect 11-main start (code=exited, status=1/FAILURE)

Aug 02 18:08:51 domaine.tld systemd[1]: Starting PostgreSQL Cluster 11-main...
Aug 02 18:08:51 domaine.tld postgresql@11-main[2009]: Error: Port conflict: another instance is already running on /var/run/postgresql with port 5432
Aug 02 18:08:51 domaine.tld systemd[1]: postgresql@11-main.service: Can't open PID file /run/postgresql/11-main.pid (yet?) after start: No such file or directo
Aug 02 18:08:51 domaine.tld systemd[1]: postgresql@11-main.service: Failed with result 'protocol'.
Aug 02 18:08:51 domaine.tld systemd[1]: Failed to start PostgreSQL Cluster 11-main.

root@machine:~# ls -al /etc/postgresql/11/main

total 60
drwxr-xr-x 3 postgres postgres  4096 Aug  2 17:38 .
drwxr-xr-x 3 postgres postgres  4096 Jul 31 14:24 ..
drwxr-xr-x 2 postgres postgres  4096 Jul 31 14:24 conf.d
-rw-r--r-- 1 postgres postgres   315 Jul 31 14:24 environment
-rw-r--r-- 1 postgres postgres   143 Jul 31 14:24 pg_ctl.conf
-rw-r----- 1 postgres postgres  4686 Jul 31 14:24 pg_hba.conf
-rw-r----- 1 postgres postgres  1636 Jul 31 14:24 pg_ident.conf
-rw-r--r-- 1 postgres postgres 24188 Aug  2 17:38 postgresql.conf
-rw-r--r-- 1 postgres postgres   317 Jul 31 14:24 start.conf

que renvois pg_lscluster ?
On dirait que le port d’écoute n’a pas été changer ?

1 Like