PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 08/03/2022 09:34:26

dangil
Membre

Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Bonjour,

Samedi dernier nous avons upgradé un de nos Postgres de prod en v13 (VM sur Linux 7.9)  avec l'option --link de pg_upgrade mais après cela nous avons remarqué que les liens du répertoire de la db applicative pointent toujours sur le répertoire de la v11.

Commande éxecutée sans erreur :

time /usr/pgsql-13/bin/pg_upgrade --link --old-datadir=/opt/postgres/bsi/11 --new-datadir=/opt/postgres/bsi/13 --old-bindir=/usr/pgsql-11/bin --new-bindir=/usr/pgsql-13/bin

Voici le  "du -h" des 2 répertoires et nous remarquons que le répertoire de la db "/11/base/16792" avec 990GB pointe toujours sur la v11

0       ./11/pg_serial
1.6M    ./11/pg_stat_tmp
1.1G    ./11/log
0       ./11/pg_wal/archive_status
2.1G    ./11/pg_wal
0       ./11/pg_tblspc
7.9M    ./11/base/1
13M     ./11/base/13881
990G    ./11/base/16792
7.7M    ./11/base/13880
0       ./11/base/pgsql_tmp
990G    ./11/base
0       ./11/pg_replslot
8.0K    ./11/pg_notify
0       ./11/pg_dynshmem
14M     ./11/pg_stat
0       ./11/pg_twophase
0       ./11/pg_snapshots
0       ./11/pg_logical/snapshots
0       ./11/pg_logical/mappings
4.0K    ./11/pg_logical
0       ./11/pg_commit_ts
8.0K    ./11/pg_multixact/offsets
8.0K    ./11/pg_multixact/members
16K     ./11/pg_multixact
48M     ./11/pg_xact
184K    ./11/pg_subtrans
30M     ./11/global
994G    ./11
0       ./tablespaces/bsi_data/PG_11_201809051
0       ./tablespaces/bsi_data/PG_13_202007201
0       ./tablespaces/bsi_data
0       ./tablespaces/bsi_document/PG_11_201809051
0       ./tablespaces/bsi_document/PG_13_202007201
0       ./tablespaces/bsi_document
0       ./tablespaces/bsi_staging/PG_11_201809051
0       ./tablespaces/bsi_staging/PG_13_202007201
0       ./tablespaces/bsi_staging
0       ./tablespaces/bsi_email/PG_11_201809051
0       ./tablespaces/bsi_email/PG_13_202007201
0       ./tablespaces/bsi_email
0       ./tablespaces
0       ./13/pg_wal/archive_status
4.3G    ./13/pg_wal
22M     ./13/global
0       ./13/pg_commit_ts
0       ./13/pg_dynshmem
0       ./13/pg_notify
0       ./13/pg_serial
0       ./13/pg_snapshots
6.6M    ./13/pg_subtrans
0       ./13/pg_twophase
8.0K    ./13/pg_multixact/offsets
8.0K    ./13/pg_multixact/members
16K     ./13/pg_multixact
8.0M    ./13/base/14173
8.2M    ./13/base/16404
44G     ./13/base/16405
94M     ./13/base/200946
0       ./13/base/pgsql_tmp
44G     ./13/base
0       ./13/pg_replslot
0       ./13/pg_tblspc
0       ./13/pg_stat
32M     ./13/pg_stat_tmp
0       ./13/pg_logical/snapshots
0       ./13/pg_logical/mappings
4.0K    ./13/pg_logical
82M     ./13/log
48M     ./13/pg_xact
48G     ./13
1.1T    .

Comment pouvons-nous corriger cette situation ?

Merci d'avance pour vos réponses et bonne journée
Daniel

Hors ligne

#2 08/03/2022 09:54:15

rjuju
Administrateur

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

C'est le principe d'un hard link et la raison pourquoi c'est si rapide: les fichiers aux 2 emplacements pointent vers les même données.  Comme indiqué dans la documentation, vous pouvez supprimer le répertoire source une fois l'opération terminée avec succès, et potentiellement après toute autre vérification.  La volumétrie sera alors correctement reportée.

Hors ligne

#3 08/03/2022 10:08:59

ruizsebastien
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Bonjour,

de plus pg_upgrade vous indique 2 scripts (ou 3 selon les cas) à exécuter en fin de migration. Dont un, de mémoire, qui vous propose de supprimer l'ancienne instance migrée.
L'avez-vous fait ?


Cordialement,

Sébastien.

Hors ligne

#4 08/03/2022 10:20:05

dangil
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Merci pour vos réponses.

Si je lance le script "delete_old_cluster.sh" qui effectue simplement un "rm -rf '/opt/postgres/bsi/11'" la db aura des problèmes car certains fichiers de l'ancien répertoire V11 sont toujours touchés.
Par exemple :

-rw-------. 2 postgres postgres   17358848 Mar  8 09:15 21823741
-rw-------. 2 postgres postgres  706199552 Mar  8 09:15 17401164

Hors ligne

#5 08/03/2022 10:25:38

ruizsebastien
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

dangil a écrit :

Merci pour vos réponses.

Si je lance le script "delete_old_cluster.sh" qui effectue simplement un "rm -rf '/opt/postgres/bsi/11'" la db aura des problèmes car certains fichiers de l'ancien répertoire V11 sont toujours touchés.
Par exemple :

-rw-------. 2 postgres postgres   17358848 Mar  8 09:15 21823741
-rw-------. 2 postgres postgres  706199552 Mar  8 09:15 17401164

tiens... ce n'est pas normal ça...
vous êtes sûr ?
Pas de message d'erreur du tout lors du pg_upgrade ?
Je ne comprends pas, ce ne devrait vraiment pas être le cas.

Dernière modification par ruizsebastien (08/03/2022 10:25:58)


Cordialement,

Sébastien.

Hors ligne

#6 08/03/2022 11:03:44

dangil
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Non, pas eu de message d'erreur. c'est très curieux.

Voici les derniers accès à la db dans le répertoire v11 :

...
-rw-------. 2 postgres postgres  668590080 Mar  8 09:57 19729529
-rw-------. 2 postgres postgres  164839424 Mar  8 09:57 38464246
-rw-------. 2 postgres postgres   13008896 Mar  8 09:57 38464252

et dans le répertoire V13 :

...
-rw-------. 2 postgres postgres  165543936 Mar  8 09:57 8472048
-rw-------. 2 postgres postgres   21913600 Mar  8 09:57 9495352
-rw-------. 2 postgres postgres   13066240 Mar  8 09:57 8472076

Hors ligne

#7 08/03/2022 11:15:59

rjuju
Administrateur

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

L'instance en v11 est bien éteinte ?

Hors ligne

#8 08/03/2022 11:33:42

ruizsebastien
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

si je ne me trompe pas, s'agissant de hard link, si vous supprimez les fichiers v11, les v13 seront préservés.
Normalement...
Peut être pouvez-vous tenter votre chance en ayant fait une sauvegarde complète et cohérente de l'instance v13 au préalable.


Cordialement,

Sébastien.

Hors ligne

#9 08/03/2022 11:33:46

dangil
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

oui elle est éteinte, seul l'instance 13 est startée :

postgres 58310     1  0 Mar05 ?        00:34:09 /usr/pgsql-13/bin/postmaster -D /opt/postgres/bsi/13
postgres 58314 58310  0 Mar05 ?        00:00:00 postgres: logger
postgres 58316 58310  0 Mar05 ?        00:36:40 postgres: checkpointer
postgres 58317 58310  0 Mar05 ?        00:02:10 postgres: background writer
postgres 58318 58310  0 Mar05 ?        00:04:57 postgres: walwriter
postgres 58319 58310  0 Mar05 ?        00:00:06 postgres: autovacuum launcher
postgres 58320 58310  0 Mar05 ?        00:00:09 postgres: archiver last was 0000000100002C190000000F
postgres 58321 58310 12 Mar05 ?        09:07:34 postgres: stats collector
postgres 58322 58310  0 Mar05 ?        00:00:00 postgres: logical replication launcher

Hors ligne

#10 08/03/2022 11:37:09

ruizsebastien
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

de plus "delete_old_cluster.sh" est sans danger si pg_upgrade s'est terminé avec succès et sans erreur.


Cordialement,

Sébastien.

Hors ligne

#11 08/03/2022 11:58:50

dverite
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

dangil a écrit :

Merci pour vos réponses.

Si je lance le script "delete_old_cluster.sh" qui effectue simplement un "rm -rf '/opt/postgres/bsi/11'" la db aura des problèmes car certains fichiers de l'ancien répertoire V11 sont toujours touchés.
Par exemple :

-rw-------. 2 postgres postgres   17358848 Mar  8 09:15 21823741
-rw-------. 2 postgres postgres  706199552 Mar  8 09:15 17401164

Si la v13 écrit dans ces fichiers il est normal que la date de dernière modification change en regardant dans le répertoire de la v11.
Ces fichiers pointant sur le même inode, ils ont les mêmes données et aussi les mêmes métadonnées à part le nom.

Cf https://en.wikipedia.org/wiki/Inode#POS … escription

Hors ligne

#12 08/03/2022 12:07:21

rjuju
Administrateur

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Tout à fait, mais de ce que je comprends du message les meta données sont différentes d'un répertoire à l'autre.  À priori la seule manière d'arriver à ça serait d'avoir un changement de relfilenode avec l'ancienne instance encore démarrée.

Hors ligne

#13 08/03/2022 14:19:54

gleu
Administrateur

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Je ne vois pas ce qui te fait dire que les métadonnées sont différentes. Pour moi, je ne vois rien dans les différents commentaires qui montreraient un problème. En ayant démarré la v13, les fichiers sont touchés, c'est normal. C'est d'ailleurs pour ça que, à partir du moment où on fait un pg_upgrade en mode link et qu'on démarre la nouvelle version, il n'est plus possible de revenir en arrière et d'utiliser l'ancienne version. Pour moi, dans tout ce que j'ai lu, je ne vois rien d'anormal.


Guillaume.

Hors ligne

#14 09/03/2022 08:46:37

dangil
Membre

Re : Hard links pas adaptés après upgrade v11 -> v13 avec pg_upgrade

Bonjour,

Merci pour vos réponses. Je peux maintenant supprimer l'ancien PGDATA de la v11 sans soucis.

Merci encore pour le support et bonne journée
Daniel

Hors ligne

Pied de page des forums