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

#1 07/03/2019 11:05:12

caius
Membre

gestion cluster multiple postgresql sur redhat

Bonjour,

Pourriez-vous m'expliquer certains points svp  à propos du fonctionnement de postgres sur redhat :

voilà, pour respecter des prérequis, nous avons un serveur redhat 7 sur lequel a été installé postgres en version 10.6. UN 1er cluster a été initialisé avec systemd et est gérer par postmaster.
Je viens de créer un 2ème cluster en suivant la doc et j'ai utilisé initdb. Mon 2e cluster (situé à un endroit différent du serveur) est géré par postgres.
J'ai cru comprendre que postmaster était l'alias obsolète de postgres..

lorsque je liste les processus postgres j'obtiens bien :

root      2886  1497  0 08:37 pts/0    00:00:00 grep --color=auto postgres
postgres  8756     1  0 Feb21 ?        00:00:12 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/
postgres  8846  8756  0 Feb21 ?        00:00:00 postgres: logger process
postgres  8861  8756  0 Feb21 ?        00:00:00 postgres: checkpointer process
postgres  8862  8756  0 Feb21 ?        00:00:12 postgres: writer process
postgres  8863  8756  0 Feb21 ?        00:00:12 postgres: wal writer process
postgres  8864  8756  0 Feb21 ?        00:00:12 postgres: autovacuum launcher process
postgres  8865  8756  0 Feb21 ?        00:00:17 postgres: stats collector process
postgres  8866  8756  0 Feb21 ?        00:00:00 postgres: bgworker: logical replication launcher
postgres 27976     1  0 Mar06 ?        00:00:00 /usr/pgsql-10/bin/postgres -D /disk01t/global/data
postgres 27981 27976  0 Mar06 ?        00:00:00 postgres: logger process
postgres 27985 27976  0 Mar06 ?        00:00:00 postgres: checkpointer process
postgres 27986 27976  0 Mar06 ?        00:00:00 postgres: writer process
postgres 27987 27976  0 Mar06 ?        00:00:00 postgres: wal writer process
postgres 27988 27976  0 Mar06 ?        00:00:00 postgres: autovacuum launcher process
postgres 27989 27976  0 Mar06 ?        00:00:00 postgres: stats collector process
postgres 27990 27976  0 Mar06 ?        00:00:00 postgres: bgworker: logical replication launcher

je vois bien que mes deux instances sont en activité cependant je ne comprend pas pourquoi lorsque je fais un /usr/pgsql-10/bin/pg_ctl status je n'obtiens que

pg_ctl: server is running (PID: 8756)
/usr/pgsql-10/bin/postgres "-D" "/var/lib/pgsql/10/data/"

je n'ai pas crée de 2e fichier /lib/systemd/system/postgresql-10.service. Il n'y en a qu'un seul qui correspond au 1er cluster géré par postmaster.
Est-ce que je dois en créer un 2ème pour mon 2eme cluster en changeant juste le PGDATA et le port (ou autre) ?
Est-ce que c'est pour cela que je n'ai pas la 2eme instance qui apparait dans pg_ctl ?

Je souhaiterais également déplacer le dossier du 1er cluster dans un autre répertoire pour plus d'organisation.
Je comptais arrêter le serveur, déplacer le dossier, changer la valeur de PGDATA dans le postgresql-10.service et relancer le serveur. est-ce bien cette méthode ? ai-je oublié une étape ?

Merci beaucoup pour votre aide..

Hors ligne

#2 07/03/2019 11:22:34

gleu
Administrateur

Re : gestion cluster multiple postgresql sur redhat

je vois bien que mes deux instances sont en activité cependant je ne comprend pas pourquoi lorsque je fais un /usr/pgsql-10/bin/pg_ctl status je n'obtiens que

pg_ctl se base sur l'option -D ou sur la variable d'environnement PGDATA pour savoir de quel instance vous voulez le statut. Il ne rapportera que le statut de cette instance. Il n'a d'ailleurs aucune idée des instances créées sur un serveur. C'est pour cela qu'il a besoin qu'on lui précise l'instance, soit avec l'option -D soit avec la variable PGDATA. Et comme il n'a rien à voir avec systemd, pas de config systemd à faire.

Je souhaiterais également déplacer le dossier du 1er cluster dans un autre répertoire pour plus d'organisation.
Je comptais arrêter le serveur, déplacer le dossier, changer la valeur de PGDATA dans le postgresql-10.service et relancer le serveur. est-ce bien cette méthode ? ai-je oublié une étape ?

A priori, ça doit être bon.


Guillaume.

Hors ligne

#3 07/03/2019 12:23:43

caius
Membre

Re : gestion cluster multiple postgresql sur redhat

Merci pour ta réponse,
Pour lister toutes les instances il me faut donc aussi paramétrer la variable PGDATA du 2ème cluster j'imagine... C'est vrai que je ne l'ai pas fait dans le fichier postgresql.conf.

Est-il préférable de créer des clusters comme cela a été fait à l'origine avec le service systemd ou avec le fichier inidb ? j'aimerai essayer d'instaurer une certaine homogénéité dans la gestion de ce serveur et de postgres.
s'il est meieux de passer par systemd, comment supprimer un cluster ? l'arrêter et supprimer le dossier data suffit ?

Merci beaucoup encore

Hors ligne

#4 07/03/2019 12:57:23

gleu
Administrateur

Re : gestion cluster multiple postgresql sur redhat

Pour lister toutes les instances il me faut donc aussi paramétrer la variable PGDATA du 2ème cluster j'imagine... C'est vrai que je ne l'ai pas fait dans le fichier postgresql.conf.

La configuration de la variable PGDATA ne se fait pas dans le fichier postgresql.conf. C'est une variable d'environnement du système d'exploitation.

Est-il préférable de créer des clusters comme cela a été fait à l'origine avec le service systemd ou avec le fichier inidb ? j'aimerai essayer d'instaurer une certaine homogénéité dans la gestion de ce serveur et de postgres.

Peu importe ce que vous choisissez mais l'homogénéité me semble un bon but à atteindre. Perso, j'utiliserais plutôt le service systemd.

s'il est meieux de passer par systemd, comment supprimer un cluster ? l'arrêter et supprimer le dossier data suffit ?

Oui. (et si vous avez créé le fichier de config systemd, il faut aussi le supprimer, je suppose)


Guillaume.

Hors ligne

Pied de page des forums