Vous n'êtes pas identifié(e).
Pages : 1
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
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).
Julien.
https://rjuju.github.io/
Hors ligne
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
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
Julien.
https://rjuju.github.io/
Hors ligne
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
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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
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 ?
Julien.
https://rjuju.github.io/
Hors ligne
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 ))
Hors ligne
Pages : 1