Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Pour faire une montée de version majeure de PostgreSQL sous Debian Stretch, en utilisant pg_upgrade, j'ai besoin d'arrêter les deux instances (une en v10 et une en v11) sur le serveur.
Pour ça, j'utilise la commande :
sudo systemctl stop postgresql.service
Ça fonctionne : les deux instances s'arrêtent bien.
Mais curieusement, les services se relancent tous seuls au bout d'une ou deux minutes.
Je ne suis pas spécialiste de systemctl (j'ai essayé avec la commande disable, mais ça ne change rien), mais je me doute qu'il doit y avoir une configuration quelque part pour empêcher ce relancement automatique, bien ennuyeux pour poursuivre les opérations de migration.
Comment faire pour empêcher ce redémarrage automatique du service ?
Merci d'avance pour votre aide,
Cédric
Hors ligne
Petit complément : j'observe le même redémarrage automatique quand j'exécute un pg_ctlcluster ... stop depuis l'utilisateur postgres.
Hors ligne
Je m'auto-réponds partiellement...
A priori, c'est parce qu'il y a des services dépendants des services postgresql.
Donc, en arrêtant chaque service, puis en les masquant, j'arrive à les arrêter sans qu'ils puissent repartir tout seul :
sudo systemctl stop postgresql@10-main.service
sudo systemctl stop postgresql@11-main.service
sudo systemctl mask postgresql@10-main.service
sudo systemctl mask postgresql@11-main.service
Et pour les redémarrer, il faut les démasquer :
sudo systemctl unmask postgresql@10-main.service
sudo systemctl unmask postgresql@11-main.service
sudo systemctl start postgresql@10-main.service
sudo systemctl start postgresql@11-main.service
Mais je ne sais pas si ce que je fais là (qui fournit le résultat attendu) est bien ou pas, et s'il y a une autre façon plus propre de faire ?
Je suis preneur de tout conseil.
Merci d'avance.
Hors ligne
Pourquoi ne pas arrêter également les services dépendants ? systemctl list-dependencies --reverse devrait vous donner l'information.
Julien.
https://rjuju.github.io/
Hors ligne
Je ne suis pas certain que ça fonctionne (et je trouve ce redémarrage automatique un peu surprenant)
mais personnellement j'aurais tendance à voir plutôt par là:
(extrait de man pg_ctlcluster):
/etc/postgresql/cluster-version/cluster-name/start.conf
This configuration file controls the start/stop behavior of the
cluster. See section "STARTUP CONTROL" in pg_createcluster(8) for
details.
et mettre provisoirement "disabled" dans le fichier, vu que (cf man pg_createcluster):
disabled
Neither the init script, pg_ctlcluster(1), nor postgresql@.service
are permitted to start/stop the cluster. Please be aware that this
will not stop the cluster owner from calling lower level tools to
control the postgres process; this option is only meant to prevent
accidents during maintenance, not more.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Est-ce toujours d'actualité ? Je pense notamment à https://www.postgresql.org/message-id/2 … g.df7cb.de
Julien.
https://rjuju.github.io/
Hors ligne
Je ne connaissais pas cette méthode avec policy-rc.d. Je ne suis pas sûr que ce soit la même situation que pour ced parce que son pg_upgrade a l'air manuel (=pas automatiquement déclenché par un upgrade de package). Modulo le fait que de toute manière je ne comprends pas pourquoi systemd fait ce qui est décrit au départ de ce post.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Modulo le fait que de toute manière je ne comprends pas pourquoi systemd fait ce qui est décrit au départ de ce post.
Oui
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1