PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 02/09/2012 09:59:29

NyRo
Membre

Pb de démarrage de postgree

Bonjour,

Utilisateur de Holdem Manager, j'ai Postgree 8.4 sur un PC sous Windows Seven.

Depuis un moment, Postgree refuse de démarrer, ralentissant considérablement au passage le démarrage du PC.

Dans l'observateur d'évènnement, j'ai tous les matins l'erreur suivante :
postgres ne peut pas accéder au fichier de configuration « D:/Program Files/PostgreSQL/8.4/data/postgresql.conf » : No such file or directory

Et ce alors que Postgree est installé sur C:

J'imagine que le problème vient de là et qu'il est lié au crash récent d'un de mes disques durs (qui a provoqué une certaine pagaille à notre ami Windows dans l'assignation des lettres des disques durs)

Mon problème, c'est que je ne vois pas du tout comment faire pointer Postgree vers le bon disque au démarrage. Quelqu'un peut-il me venir en aide ?

D'avance merci et bonne journée,
Ronan

Hors ligne

#2 02/09/2012 11:45:13

rjuju
Administrateur

Re : Pb de démarrage de postgree

Bonjour,

Si effectivement suite à votre crash le lettres de lecteur ont été interverties, le plus simple serait de ne supprimer que le service et le recréer. Pour ce faire, il faut trouver le nom de votre service (démarrer / exécuter / services.msc et regarder le nom du service postgresql ainsi que le compte utilisateur ainsi que toutes les options du fichier exécutable). Une fois que vous avez le nom, pour supprimer le service (je suppose le répertoire d'installation de postgresql) :


"c:\Program Files\Postgresql\8.4\bin\pg_ctl" unregister -N "nom_service"


ensuite, recréer le service au bon endroit, avec les même options que le précédent service, qui devrait être quelque chose comme ça :


"c:\Program Files\Postgresql\8.4\bin\pg_ctl" register -N "nom_service" -D "c:/Program Files/Postgresql/8.4/data" -U postgresql -P "lemotdepasse"

En ligne

#3 02/09/2012 12:28:56

NyRo
Membre

Re : Pb de démarrage de postgree

Merci pour ce retour

Je suis allé voir dans les services et voici ce qui est indiqué comme chemin d'accès des fichiers exécutables :
C:/Program Files (x86)/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/Program Files/PostgreSQL/8.4/data" -w

Le disque dur qui a récemment crashé comportait deux partitions D et F.
Maintenant que j'y repense, il est possible que j'ai, au moment de l'installation, fait en sorte que les données de la base soient stockées sous D plutôt que sous C qui est mon disque système. C'est assez ancien et je ne m'en souviens plus.

Avant de toucher au service, y a-t-il moyen qui me permette de vérifier si mes données étaient bien sur D ?

Dernière modification par NyRo (02/09/2012 12:31:00)

Hors ligne

#4 02/09/2012 13:09:13

rjuju
Administrateur

Re : Pb de démarrage de postgree

Faites une recherche du fichier postgresql.conf. Il vous donnera l'emplacement de votre répertoire data. Il suffit alors de modifier dans la commande le paramètre "-D" pour qu'il pointe vers le bon répertoire.

De toutes façons, supprimer le service ne supprimera aucune donnée de la base, et vous pourrez toujours de la même façon redéclarer le service. Pas d'inquiétude à avoir à ce niveau là.

En ligne

#5 02/09/2012 14:14:21

NyRo
Membre

Re : Pb de démarrage de postgree

Ce fichier postgresql.conf est sous C:\Program Files (x86)\PostgreSQL\8.4\data

Lorsque je l'édite, j'ai beau chercher, je ne vois rien concernant l'emplacement de mes données.

#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

#data_directory = 'ConfigDir'        # use data in another directory
                    # (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'    # host-based authentication file
                    # (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf'    # ident configuration file
                    # (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = '(none)'        # write an extra PID file
                    # (change requires restart)

C'est bel et bien du charabia pour moi... pourriez-vous être plus explicite sur les actions à réaliser ? par exemple, ou dois-je lancer les commandes pour supprimer/recréer le service 'postgresql-8.4'

Désolé d'être si peu doué ;-)

Hors ligne

#6 02/09/2012 14:42:08

rjuju
Administrateur

Re : Pb de démarrage de postgree

Le fichier postgresql.conf est situé à la racine du répertoire data (c'est à dire "C:\Program Files (x86)\PostgreSQL\8.4\data" pour vous), sauf si le paramètre "data_directory" est renseigné, ce qui n'est pas le cas ici.


Pour créer ou supprimer le service, le plus simple est d'être dans le répertoire des binaires de postgres, ce qui doit être je suppose C:\Program Files (x86)\PostgreSQL\8.4\bin. Rien ne vous empêche de désactiver le service postgresql existant et d'en créer un autre avec un nom différent par sécurité. Si le service se lance bien, vous n'aurez qu'à supprimer l'ancien, ou le laisser désactivé.

En ligne

#7 02/09/2012 15:03:21

NyRo
Membre

Re : Pb de démarrage de postgree

Je comprends donc que mes data doivent être sous C: même si je ne parviens pas à les visualiser.
Je suis quand même un peu surpris de ne voir que 39 Mo dans C:\Program Files (x86)\PostgreSQL\8.4\data.

Sinon, lorsque je suis dans le répertoire 'bin', je ne vois pas à quel fichier pourrait correspondre le service ''postgresql-8.4' parmi les 43 éléments existants. Je suis donc un peu perdu :-(

Hors ligne

#8 02/09/2012 15:10:17

rjuju
Administrateur

Re : Pb de démarrage de postgree

Le service est lancé par l'exécutable pg_ctl.exe.

Essayez de démarrer la base avec le répertoire, si elle démarre relancez Holdem Manager pour vérifier que vos données sont bien là. Si ce n'est pas le cas cherchez sur vos autres disques dur le fichier postgresql.conf

En ligne

#9 02/09/2012 15:14:30

rjuju
Administrateur

Re : Pb de démarrage de postgree

Si vous voulez plus d'information, le plus simple serait de commencer par le guide du débutant postgresql, qui devrait répondre à beaucoup de vos questions : https://github.com/julien2512/guide_du_ … f?raw=true

En ligne

#10 02/09/2012 15:26:45

NyRo
Membre

Re : Pb de démarrage de postgree

A part une furtive fenêtre DOS, il ne se passe rien lorsque je double clique sur 'pg_ctl.exe'
Mais est-ce bien la manière adéquate pour 'lancer le service' ou 'démarrer la base avec le répertoire' ?
Pardonnez-mon incompétence mais j'ai beaucoup de mal à suivre vos explications.


J'ai lancé la recherche sur l'ensemble de mes disques valides, et je ne vois 'postgresql.conf' que sur mon C:
Il se peut bien sûr qu'il ait été présent sur le disque qui a crashé mais la date de modification relativement récente de celui sur C: me laisse penser que c'est peut-être le bon.
N'y a-t-il pas moyen de visualiser les données sans passer par postgree ?

Dernière modification par NyRo (02/09/2012 15:31:40)

Hors ligne

#11 02/09/2012 15:27:57

NyRo
Membre

Re : Pb de démarrage de postgree

Merci pour le guide, j'y jette un oeil dès à présent ;-)

Hors ligne

#12 02/09/2012 15:31:22

rjuju
Administrateur

Re : Pb de démarrage de postgree

Comme je vous l'ai indiqué plus haut, il faut lancer l'exécutable pg_ctl avec des options particulières :


"c:\Program Files (x86)\Postgresql\8.4\bin\pg_ctl" register -N "nom_service" -D "c:/Program Files (x86)/Postgresql/8.4/data" -U postgresql -P "lemotdepasse"


en renseignant "nom_service" ainsi "lemotdepasse" selon le nom souhaité ainsi que le mot de passe de votre utilisateur postgres. Vous ne pouvez pas le faire "graphiquement" en cliquant sur pg_ctl.exe, vous devez soit saisir la ligne de commande dans l'invite de commande dos, soit créer un fichier .bat exécutant cette commande.

Et il n'est pas possible de visualiser les données sans passer par postgres.

En ligne

#13 02/09/2012 15:34:57

NyRo
Membre

Re : Pb de démarrage de postgree

Ok, il faut que je passe par une invite de commande... désolé mais je n'avais pas du tout compris cela.

Pas certain du reste que j'y parvienne mais merci ;-)

Hors ligne

#14 28/09/2012 08:57:02

NyRo
Membre

Re : Pb de démarrage de postgree

Bonjour,

Je reviens vers vous car mon problème reste entier.

Je n'ai pas pu faire la manip. conseillée car je ne connais pas le mot de passe du service Postgree.
En effet, celui-ci diffère du mot de passe visible dans la fenêtre 'Database Control Panel' de Postgree.
Ce dernier faisant 12 caractères tandis que celui du service en fait manifestement 15.

N'y a-t-il pas moyen d'éditer le service, ou de le retrouver dans le registre ?

Sinon, je suis toujours à la recherche des données de ma base.
Sous 'C:\Program Files (x86)\PostgreSQL\8.4\data\base', j'ai des sous répertoires '1', '11563', '11564' et '16397'
Ces sous répertoires contiennent de nombreux fichiers de petite taille nommés 'xxx', 'xxx_fsm' ou 'xxx-vm' (avec xxx=chiffres)
S'agit-il des données de la base ? (j'avoue avoir des doutes car ils ont tous la date de dernière modif au 16/12/2011, ce qui correspond peut-être à la date d'instal de Postgree)
Si oui, y a-t-il moyen de les sauvegarder pour ensuite des 'réinjecter' après une réinstallation de Postgree ?

Désolé pour mon manque flagrant de compétences et d'avance merci aux bonnes âmes qui pourraient me venir en aide.

Hors ligne

#15 28/09/2012 09:20:50

rjuju
Administrateur

Re : Pb de démarrage de postgree

Bonjour,

vous pouvez modifier le mot de passe de votre utilisateur windows postgres (gestion de l'ordinateur puis gestion des utilisateurs). Si d'autres services sont exécutés avec cet utilisateur, il faudra alors les modifier pour renseigner le nouveau mot de passe.

Si vous voulez sauvegarder votre base via les fichiers sur disque alors que la base est arrêtée, c'est possible mais il faut  sauvegarder la totalité du répertoire data, pas uniquement le sous-répertoire base.

En ligne

Pied de page des forums