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

#1 27/04/2010 11:24:09

fanah
Membre

[RESOLU] arret et demarrage de postgres avec pg_ctl

J’essaie de démarrer ma base avec la ligne de commande ci après:

pg_ctl start -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w

Et j'ai le message d'erreur suivante :

En attente du démarrage du serveur...2010-04-26 18:03:52 MSDFATAL:  n'a pas pu créer le journal applicatif « pg_log/postgresql-2010-04-26_180352.log » : Permission denied

Pourtant, j'ai déjà créé un utilisateur postgres et qui a le contrôle total sur le dossier pg_log.

Est-ce que quelqu'un peut m'aider ?

Hors ligne

#2 27/04/2010 11:28:25

gleu
Administrateur

Re : [RESOLU] arret et demarrage de postgres avec pg_ctl

Il vous dit le contraire. À moins que le service n'indique pas l'utilisateur postgres, mais ce serait étonnant. Essayez de créer un fichier dans pg_log en tant qu'utilisateur postgres, histoire de voir si vous obtenez un message d'erreur.


Guillaume.

Hors ligne

#3 27/04/2010 13:30:21

fanah
Membre

Re : [RESOLU] arret et demarrage de postgres avec pg_ctl

Ce qui est étonnant c'est lorsque je démarre le service postgresql-8.4 via services.msc il n'y a pas de message d'erreur, cependant dans la propriété de ce service postgresql-8.4 sur le libellé Chemin d'accès des fichiers exécutables j'ai :

C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -w

Et le fichier log postgresql-2010-04-27_152300.log a été créé dans le path C:\Program Files\PostgreSQL\8.4\data\pg_log.

Est-ce que cela ne signifie-t-il pas que postgres a accès a ce path ?

Hors ligne

#4 27/04/2010 14:15:30

gleu
Administrateur

Re : [RESOLU] arret et demarrage de postgres avec pg_ctl

Oui, s'il a accepté de démarrer ainsi, c'est qu'il a accès avec tous les droits à ce répertoire.

Ce que cela signifie surtout, c'est que l'option start ne peut pas être utilisé en tant qu'utilisateur lambda. Il faut être postgres pour utiliser cette option. Et dans les autres cas, il faut utiliser l'option runservice car cette dernière exécute le service, qui lui-même est configuré pour utiliser l'utilisateur postgres.


Guillaume.

Hors ligne

#5 27/04/2010 14:54:30

fanah
Membre

Re : [RESOLU] arret et demarrage de postgres avec pg_ctl

Mon but était de créer un script de sauvegarde à froid.

- arrêt de la base
- copie des fichiers data dans un autre serveur
- démarrage de la base

Lors de l'arrêt je ne spécifie par l'utilisateur postgres et il 'n y pas d'erreur, le service s'arrête correctement.

"C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe" stop -N "postgresql-8.4" -D "C:/Program Files/PostgreSQL/8.4/data" -m fast -w
xcopy "C:\Program Files\PostgreSQL\8.4\data" "\\serveur\C$\data"

J'ai ajouté donc dans mon ligne de commande sur le démarrage l'utilisateur.

"C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe" start -N "postgresql-8.4" -U postgres -P postgres -D "C:/Program Files/PostgreSQL/8.4/data" -w

Mais l'erreur persiste toujours

en attente du démarrage du serveur...2010-04-26 18:03:52 MSDFATAL:  n'a pas pu créer le journal applicatif « pg_log/postgresql-2010-04-26_180352.log » : Permission denied

Est ce qu'il y pas d'autre commande qui permet de démarrer la base à part pg_ctl ?

Hors ligne

#6 27/04/2010 15:43:51

gleu
Administrateur

Re : [RESOLU] arret et demarrage de postgres avec pg_ctl

Vous feriez mieux d'utiliser la commande sc pour diriger le service avec les options start et stop. Je n'ai pas de Windows sous la main mais la syntaxe exacte doit être facile à trouver avec un Windows sous la main.


Guillaume.

Hors ligne

#7 27/04/2010 16:55:02

fanah
Membre

Re : [RESOLU] arret et demarrage de postgres avec pg_ctl

j'ai fait :

sc start "postgresql-8.4"

Ca démarre maintenant.
Merci pour votre aide.

Hors ligne

Pied de page des forums