46 votes

Le serveur postgres ne démarre pas, ne produit aucun journal, comment diagnostiquer ?

Je lance une instance de postgres 9.3 sur un serveur ubuntu 12.04 :

~# service postgresql start 

 * Le serveur PostgreSQL n'a pas pu démarrer. Veuillez vérifier la sortie du journal.
                                                                     [fail]

Le démarrage échoue, mais aucun journal n'est laissé, ce fichier est vide :

tail /var/log/postgresql/postgresql-9.3-main.log 

et il n'y a pas d'autres fichiers dans ce répertoire : /var/log/postgresql/

Quelle est la meilleure façon de résoudre ce problème ?

70voto

Android Eve Points 883

Essayez de l'exécuter manuellement avec le mode de débogage activé. Cela provoquera son exécution en premier plan et affichera les messages d'erreur sur la sortie standard, tout en augmentant la verbosité.

Je crois que ceci sera la commande correcte pour PostgreSQL 9.3 sur Ubuntu, mais cela pourrait nécessiter quelques ajustements très légers (note : la ligne est divisée pour la lisibilité ; vous pouvez la recombiner en une seule ligne (sans le backslash) si vous le souhaitez) :

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

Le début est l'emplacement du binaire postgres, puis nous activons le débogage et le réglons au niveau 3 (vous pouvez ajuster cela vers le haut ou vers le bas pour augmenter ou diminuer la verbosité). Ensuite, nous spécifions le répertoire des données et le fichier de configuration pour démarrer. Ce devraient être les paramètres par défaut pour Ubuntu Server 12.04, je pense.

En espérant que cela vous donnera suffisamment d'informations pour déterminer où se situe le problème.

3voto

Kerri Shotts Points 653

Basé sur la réponse de @christopher :

Avec postgres 12 sur ubuntu, j'ai exécuté :

# avec mon répertoire de données personnalisé :
/usr/lib/postgresql/12/bin/postgres -d 3 -D /media/ssd1/pg_data -c config_file=/etc/postgresql/12/main/postgresql.conf

# avec la configuration par défaut :
/usr/lib/postgresql/12/bin/postgres -d 3 -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf

Dans mon cas, le problème était le suivant :

2020-06-02 15:27:45.468 GMT [2522] LOG:  skipping missing configuration file "/media/ssd1/pg_data/postgresql.auto.conf"
2020-06-02 17:27:45.469 CEST [2522] FATAL:  data directory "/media/ssd1/pg_data" has wrong ownership
2020-06-02 17:27:45.469 CEST [2522] HINT:  The server must be started by the user that owns the data directory.
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  shmem_exit(1): 0 before_shmem_exit callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  shmem_exit(1): 0 on_shmem_exit callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  proc_exit(1): 0 callbacks to make
2020-06-02 17:27:45.469 CEST [2522] DEBUG:  exit(1)

Je n'avais aucune information utile dans sudo cat /var/log/postgresql/postgresql-12-main.log Et sudo systemctl start postgresql n'a produit aucune sortie

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X