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

#1 28/06/2012 21:16:25

MitsuTomoe
Membre

pg_lsclusters n'affiche rien

Bonjour,
je m'occupe de 2 serveurs, dev et prod, que je croyais avoir installé à l'identique (Ubuntu 12.04, Pg 9.1.4) .
Sur la prod :
postgres@sd-16433:~$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
postgres@sd-16433:~$ pg_ctl status
pg_ctl: server is running (PID: 2003)
/usr/lib/postgresql/9.1/bin/postgres "-D" "/var/lib/postgresql/data"
postgres@sd-16433:~$

Sur le dev :
postgres@ks3001539:~$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
9.1     main      5432 online postgres /var/lib/postgresql/9.1/main       /var/log/postgresql/postgresql-9.1-main.log
postgres@ks3001539:~$ pg_ctl status
pg_ctl: server is running (PID: 6472)
/usr/lib/postgresql/9.1/bin/postgres "-D" "/var/lib/postgresql/9.1/main" "-c" "config_file=/etc/postgresql/9.1/main/postgresql.conf"


Pourquoi pg_lsclusters ne m'affiche rien en prod ? pg_ctl et pg_dump fonctionnent très bien.

Hors ligne

#2 28/06/2012 21:43:11

rjuju
Administrateur

Re : pg_lsclusters n'affiche rien

Bonjour,
je pense que vous avez fait un "script maison" pour votre serveur de prod, car son répertoire data n'est pas standard pour ubuntu. Soit le serveur est lancé avec un pg_ctl -D /var/lib/postgresql/data, soit vous avez créé un script pour le lancer au démarrage.
Cela n'est pas plus gênant que ça cela dit. Si vous voulez restez standard, vous pouvez toujours le remettre dans le répertoire standard en vérifiant que pg_ctlcluster puisse bien se lancer etc (problème de port à prévoir si les 2 serveurs tournent en parallèle).

Hors ligne

#3 28/06/2012 22:15:14

MitsuTomoe
Membre

Re : pg_lsclusters n'affiche rien

C'est le 1er serveur que j'ai installé, je ne connaissais ni Ubuntu ni Postgres, j'ai du faire des c* .
Pour me remettre dans les clous, je suppose qu'il faudrait faire un pg_dumpall , virer le cluster existant et en recréer un au bon endroit ?

Hors ligne

#4 28/06/2012 22:33:46

rjuju
Administrateur

Re : pg_lsclusters n'affiche rien

Vous pouvez effectivement faire comme ça, sinon comme la version majeure est la même, le déplacement du contenu entier du répertoire data suffira. Si vous voulez le faire : il faut éteindre ce serveur, démarrer via pg_cluster voir si tout se passe bien, éteindre le serveur via pg_cluster et déplacer les données de /var/lib/postgresql/data vers /var/lib/postgresql/9.1/main

Hors ligne

#5 28/06/2012 22:41:13

MitsuTomoe
Membre

Re : pg_lsclusters n'affiche rien

merci je vais essayer (après une sauvegarde), j'aimerais que ce soit propre avant qu'il y ait de l'affluence sur le site, dans 1 mois je ne pourrai plus le faire (enfin disons que je n'oserai pas)

Hors ligne

#6 29/06/2012 10:17:05

MitsuTomoe
Membre

Re : pg_lsclusters n'affiche rien

J'ai fait le déplacement, ça marche nickel sauf que pg_lsclusters ne m'affiche toujours rien...

pg_ctl status
pg_ctl: server is running (PID: 938)
/usr/lib/postgresql/9.1/bin/postgres "-D" "/var/lib/postgresql/9.1/main"
postgres@sd-16433:~$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
postgres@sd-16433:~$ pg_ctlcluster 9.1 main reload
Error: specified cluster does not exist

Je crois que je vais laisser tomber, mais ça m'ennuie de ne pas comprendre.

Hors ligne

#7 29/06/2012 11:39:23

rjuju
Administrateur

Re : pg_lsclusters n'affiche rien

pg_lsclusters vous affichera les clusters qu'il aura démarré.
Comment avez-vous démarré cette instance ?


Je ne connais pas très bien les outils ubuntu, mais je pense qu'il doit y avoir une étape pg_createcluster, avec le cluster main qui doit être créé par défaut lors du apt-get. C'est pour ça qu'il faudrait d'abord créer/démarrer une instance via les outils ubuntu, puis déplacer le répertoire data vers celui du cluster pour déplacer toutes les données et rester ensuite standard avec ubuntu.

Hors ligne

#8 29/06/2012 14:21:12

MitsuTomoe
Membre

Re : pg_lsclusters n'affiche rien

Pour le démarrage, j'ai un script dans /etc/init.d que j'ai récupéré dans postgresql-contrib . Suite à vos explications, je crois que je comprend mieux maintenant.
Si je trouve du temps, j'essaierai de faire ça bien propre.
Merci pour votre aide, je pose beaucoup de questions ces temps ci, mais je débute.
J'espère apporter ma contribution à la communauté quand j'aurai plus de kms sur Postgres.
PS : j'ai découvert l'outil apgdiff, c'est parfait pour synchroniser dev/prod.

Dernière modification par MitsuTomoe (29/06/2012 14:22:35)

Hors ligne

#9 29/06/2012 15:52:41

MitsuTomoe
Membre

Re : pg_lsclusters n'affiche rien

C'est (presque) ok :
pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
9.1     main      5432 online postgres /var/lib/postgresql/9.1/main       /var/log/postgresql/postgresql-9.1-main.log

Le seul (petit) souci est que j'ai une erreur d'authentification sur postgres quand je démarre le cluster, mais il passe online quand même.
Le password de postgres est dans .pgpass . J'ai regardé dans /usr/bin/pg_ctlcluster, et la même commande (psql -h ... -p xxx -l ) fonctionne en interactif.

Hors ligne

#10 29/06/2012 16:12:40

rjuju
Administrateur

Re : pg_lsclusters n'affiche rien

Il ne faut pas confondre l'authentification du démarrage du serveur (utilisateur système) et l'accès aux bases (rôles postgresql). Le fichier .pgpass ne sert qu'à fournir un mot de passes aux binaires clients (psql etc) sur un ou plusieurs rôles de connexion.


Quel est le message affiché lors du démarrage du cluster ?

Hors ligne

#11 29/06/2012 17:37:48

MitsuTomoe
Membre

Re : pg_lsclusters n'affiche rien

C'est ok . J'avais mis md5 pour tout le monde dans pg_hba.conf . J'ai mis peer pour postgres en local, tout est parfait maintenant.
Je pense que le travail effectué sera utile lors de la migration en 9.2, si j'ai bien compris l'intérêt de l'architecture multi-cluster.
Sur ma lancée, je vais peut-être essayer la réplication smile))

Hors ligne

Pied de page des forums