Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Fri 27 August 2021 10:16

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Nouveau serveur PG : pb invite de commande Windows

Bonjour à tous,

Je viens d'installer un serveur PG sur mon PC Windows 10 pour une utilisation locale.
J'ai eu un message d'erreur au moment de la création de la base de données (cluster), que je n'ai malheureusement pas noté (je pense en lien avec des droits utilisateur), mais j'ai ensuite réussi à créer une base avec

Code:

initdb.exe "D:\DATAPG"

J'ai ainsi réussi à connecter PgAdmin ou QGis, et créer mes premières bases/schémas/tables big_smile

Par contre, je rencontre un comportement étrange de l'invite de commande Windows quand je démarre le serveur. Peut-être est-ce normal, mais je ne crois pas que ça faisait cela sur mes précédents PC/instances.
Quand je fais :

Code:

pg_ctl start -D "D:\DATAPG"

Le serveur démarre bien, et j'ai cette réponse :

Code:

U:\>pg_ctl start -D "D:\DATAPG"
en attente du démarrage du serveur....2021-08-27 10:09:19.299 CEST [11512] LOG:  démarrage de PostgreSQL 13.4, compiled by Visual C++ build 1914, 64-bit
2021-08-27 10:09:19.308 CEST [11512] LOG:  en écoute sur IPv4, adresse « 127.0.0.1 », port 5432
2021-08-27 10:09:19.308 CEST [11512] LOG:  en écoute sur IPv6, adresse « ::1 », port 5432
2021-08-27 10:09:19.414 CEST [12836] LOG:  le système de bases de données a été arrêté à 2021-08-27 10:09:01 CEST
2021-08-27 10:09:19.626 CEST [11512] LOG:  le système de bases de données est prêt pour accepter les connexions
 effectué
serveur démarré

Mais ensuite, si je tente de fermer l'invite de commande, celle-ci ne se ferme pas et m'affiche ces messages supplémentaires :

Code:

U:\>2021-08-27 10:09:22.957 CEST [11512] LOG:  processus en tâche de fond « logical replication launcher » (PID 3436) a été arrêté par l'exception 0xC000013A
2021-08-27 10:09:22.957 CEST [11512] ASTUCE :  Voir le fichier d'en-tête C « ntstatus.h » pour une description de la valeur
        hexadécimale.
2021-08-27 10:09:22.957 CEST [11512] LOG:  arrêt des autres processus serveur actifs
2021-08-27 10:09:22.961 CEST [11512] LOG:  processus de récupération des statistiques (PID 12876) a été arrêté par l'exception 0xC000013A
2021-08-27 10:09:22.961 CEST [11512] ASTUCE :  Voir le fichier d'en-tête C « ntstatus.h » pour une description de la valeur
        hexadécimale.
2021-08-27 10:09:22.973 CEST [11512] LOG:  tous les processus serveur sont arrêtés ; réinitialisation
2021-08-27 10:09:23.071 CEST [11596] LOG:  le système de bases de données a été interrompu ; dernier lancement connu à 2021-08-27 10:09:19 CEST
2021-08-27 10:09:23.750 CEST [11596] LOG:  le système de bases de données n'a pas été arrêté proprement ; restauration
        automatique en cours
2021-08-27 10:09:23.756 CEST [11596] LOG:  longueur invalide de l'enregistrement à 0/21D72A0 : voulait 24, a eu 0
2021-08-27 10:09:23.756 CEST [11596] LOG:  la ré-exécution n'est pas nécessaire
2021-08-27 10:09:23.989 CEST [11512] LOG:  le système de bases de données est prêt pour accepter les connexions

Voyez-vous d'où vient ce comportement ? Normal ?

Je vais creuser pour faire en sorte que le serveur se lance automatiquement au démarrage de Windows : si vous avez une solution simple à me proposer, je veux bien wink

Merci pour vos conseils !

Dernière modification par Sylvain M. (Fri 27 August 2021 10:16)


Sylvain M.

Hors ligne

 

#2 Fri 27 August 2021 11:08

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Nouveau serveur PG : pb invite de commande Windows

Bonjour,

Le comportement que vous voyez est normal: vous avez démarré pg en ligne de commande dans une fenetre dos: pg est alors lié à cette fenetre.
Quand vous la fermez d'un coup sans arreter pg, c'est comme si vous crashiez volontairement pg (message processus en tâche de fond « logical replication launcher » (PID 3436) a été arrêté par l'exception 0xC000013A). Quand un des process pg crashe, le système de pg arrête les autres processus et redémarre (dernier message: le système de bases de données est prêt pour accepter les connexions).

Pour arrêter proprement pg, utilisez pg_ctl stop -D ..., éventuellement avec l'option -m suivant le type d'arret que vous voulez faire.
Une fois pg arrêtée, vous pouvez fermer la fenêtre dos.

Sous windows, il est plus simple de gérer les arrêts/stop de pg avec les services windows: Si vous avez installé pg avec un installeur type wizard, vous devriez avoir un service "postgresql" qui apparaît dans la fenetre des services. Vous pouvez alors contrôler pg depuis cette fenêtre, et par exemple choisir de démarrer automatiquement au démarrage de windows.

Je vous conseille aussi de configurer le fichier de log dans pg (postgresql.conf), pour l'écrire qq part sur le disque et pouvoir vous y référer en cas de problème.

Nicolas

Hors ligne

 

#3 Fri 27 August 2021 11:44

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: Nouveau serveur PG : pb invite de commande Windows

Merci Nicolas : j'y vois plus clair avec tes explications big_smile

Si vous avez installé pg avec un installeur type wizard, vous devriez avoir un service "postgresql" qui apparaît dans la fenetre des services.


Malheureusement, je ne le trouve pas dans la liste des services. J'ai pourtant bien utilisé le Wizard Windows x86-64 de EnterpriseDB (https://www.enterprisedb.com/downloads/ … -downloads).

Est-ce que je dois le créer avec une commande du genre :

Code:

pg_ctl register -N postgresql -D "D:\DATAPG"

Dernière modification par Sylvain M. (Fri 27 August 2021 11:45)


Sylvain M.

Hors ligne

 

#4 Fri 27 August 2021 11:57

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: Nouveau serveur PG : pb invite de commande Windows

Sans attendre, j'ai lancé la commande de création du service, et redémarré le PC.
Super : PgAdmin et QGis se connectent bien au Serveur, sans que j'ai eu à le démarrer manuellement big_smile
(le service "postgresql" est bien visible dans la fenêtre des services, en cours d’exécution et en démarrage automatique)

Juste une dernière question, pour comprendre. Si je fais un

Code:

pg_ctl status -D "D:\DATAPG"

ça me répond

pg_ctl : aucun serveur en cours d'exécution


Alors que tout fonctionne depuis QGis  / PgAdmin : c'est normal ?


Sylvain M.

Hors ligne

 

#5 Fri 27 August 2021 12:00

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Nouveau serveur PG : pb invite de commande Windows

Je ne connaissais pas le pg_ctl register ! C'est cool cette option.

Mets peut etre la version de postgresql dans le nom du service (-N postgresql-13 par ex). Comme il est possible d'avoir plusieurs version en // de pg, ca peut etre utile de savoir quel service pilote quelle version.

Nicolas

Hors ligne

 

#6 Fri 27 August 2021 12:38

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: Nouveau serveur PG : pb invite de commande Windows

Nicolas Ribot a écrit:

Mets peut etre la version de postgresql dans le nom du service


Trop tard, mais effectivement ça aurait été mieux ! (comme ça marche bien, je veux pas prendre le risque de supprimer le service)

Mais tu trouves ça normal que le "pg_ctl status" m'indique "aucun serveur en cours d'exécution" alors que le service est opérationnel ?


Sylvain M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB