Vous n'êtes pas identifié(e).
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
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
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
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