Bonjour,
Version: PostgreSQL 10beta3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 7.1.0-13) 7.1.0, 64-bit
Je crée un cluster par la commande :
pg_createcluster \
pg_createcluster \
-d /PG_02_01/data \
--locale fr_FR.iso885915@euro \
--lc-collate C \
--lc-ctype C \
-e LATIN9 \
10 MONCLUSTER \
-- --waldir=/PG_03_01 \
--data-checksums
Jusque-là tout va bien. Le message suivant est affiché :
Succès. Vous pouvez maintenant lancer le serveur de bases de données en utilisant :
/usr/lib/postgresql/10/bin/pg_ctl -D /PG_02_01/data -l fichier de trace start
Warning: systemd does not know about the new cluster yet. Operations like "service postgresql start" will not handle it. To fix, run:
sudo systemctl daemon-reload
Ver Cluster Port Status Owner Data directory Log file
10 MONCLUSTER 5432 down postgres /PG_02_01/data /var/log/postgresql/postgresql-10-MONCLUSTER.log
Par contre, si je fais comme le message me le suggère :
/usr/lib/postgresql/10/bin/pg_ctl -D /PG_02_01/data start
J'ai le message d'erreur :
en attente du démarrage du serveur....postgres : n'a pas pu accéder au fichier de configuration « /PG_02_01/data/postgresql.conf » : Aucun fichier ou dossier de ce type
attente arrêtée
pg_ctl : n'a pas pu démarrer le serveur
Examinez le journal applicatif.
Ce qui me parait s'expliquer par le fait que sous Debian le fichier postgresql.conf est sous :
:~$ ls /etc/postgresql/10/MONCLUSTER/postgresql.conf
/etc/postgresql/10/MONCLUSTER/postgresql.conf
Mon instance démarre correctement avec :
/usr/lib/postgresql/10/bin/pg_ctl -D /etc/postgresql/10/MONCLUSTER/ start
en attente du démarrage du serveur....2017-08-11 19:34:13.106 CEST [11868] LOG: en écoute sur IPv6, adresse « ::1 », port 5432
2017-08-11 19:34:13.106 CEST [11868] LOG: en écoute sur IPv4, adresse « 127.0.0.1 », port 5432
2017-08-11 19:34:13.108 CEST [11868] LOG: écoute sur la socket Unix « /var/run/postgresql/.s.PGSQL.5432 »
2017-08-11 19:34:13.122 CEST [11869] LOG: le système de bases de données a été arrêté à 2017-08-11 19:32:16 CEST
2017-08-11 19:34:13.128 CEST [11868] LOG: le système de bases de données est prêt pour accepter les connexions
effectué
serveur démarré
Ai-je fait une erreur quelque part ? Ou bien, faut-il faire modifier le message affiché par pg_createcluster ?
Merci beaucoup pour votre aide.
JP
pg_createcluster
-
- Administrateur du site
- Messages : 292
- Enregistré le : mar. 1 sept. 2015 00:38
- Localisation : France
- Contact :
Re: pg_createcluster
Bonjour Jean-Pierre,
Aucune erreur dans l'utilisation de pg_createcluster, c'est bien le message qui est erroné.
Ces informations récapitulatives sur le cluster créé sont en fait produites par initdb et pas par pg_createcluster qui encapsule initdb.
Le problème est qu'initdb ignore la relocalisation des fichiers de configuration sous /etc effectuée par Debian pour se conformer au standard Unix.
Exemple d'utilisation directe d'initdb :
Avec pg_createcluster, cette partie du message "Vous pouvez etc." devrait effectivement être modifiée ou ne pas être affichée du tout.
Avec systemd, il est de toute façon préférable de ne pas utiliser directement pg_ctl et de toujours arrêter/démarrer le cluster avec systemctl (ou à la rigueur pg_ctlcluster avec les droits root sous Debian/Ubuntu)
Ce problème concerne pg_createcluster avec PostgreSQL 10 beta, sur la configuration stable au 15/08/2017 (debian stretch + postgreSQL 9.6) les informations provenant d'initdb ne sont pas du tout affichées par pg_createcluster.
Aucune erreur dans l'utilisation de pg_createcluster, c'est bien le message qui est erroné.
Ces informations récapitulatives sur le cluster créé sont en fait produites par initdb et pas par pg_createcluster qui encapsule initdb.
Le problème est qu'initdb ignore la relocalisation des fichiers de configuration sous /etc effectuée par Debian pour se conformer au standard Unix.
Exemple d'utilisation directe d'initdb :
Code : Tout sélectionner
root@srvdeb10:~# mkdir /toto
root@srvdeb10:~# chown postgres:postgres /toto
postgres@srvdeb10:~$ /usr/lib/postgresql/10/bin/initdb -D /toto
Les fichiers de ce cluster appartiendront à l'utilisateur « postgres ».
...
Succès. Vous pouvez maintenant lancer le serveur de bases de données en utilisant :
/usr/lib/postgresql/10/bin/pg_ctl -D /toto -l fichier de trace start
Avec systemd, il est de toute façon préférable de ne pas utiliser directement pg_ctl et de toujours arrêter/démarrer le cluster avec systemctl (ou à la rigueur pg_ctlcluster avec les droits root sous Debian/Ubuntu)
Ce problème concerne pg_createcluster avec PostgreSQL 10 beta, sur la configuration stable au 15/08/2017 (debian stretch + postgreSQL 9.6) les informations provenant d'initdb ne sont pas du tout affichées par pg_createcluster.
Code : Tout sélectionner
root@srvdeb96:/tmp# pg_createcluster 9.6 test
Creating new cluster 9.6/test ...
config /etc/postgresql/9.6/test
data /var/lib/postgresql/9.6/test
locale fr_FR.UTF-8
socket /var/run/postgresql
port 5433
Cdlt. Phil - pgphil.ovh
Re: pg_createcluster
Merci pour cette réponse.
J'ai crée le bug suivant : 872660
( https://bugs.debian.org/cgi-bin/bugrepo ... bug=872660 )
Statut : en cours, confirmé ...
A suivre.
( La prochaine fois, je pense à "remover these template lines" ...)
Bien cordialement,
J'ai crée le bug suivant : 872660
( https://bugs.debian.org/cgi-bin/bugrepo ... bug=872660 )
Statut : en cours, confirmé ...
A suivre.
( La prochaine fois, je pense à "remover these template lines" ...)
![Clin d’œil ;)](./images/smilies/icon_e_wink.gif)
Bien cordialement,