Vous n'êtes pas identifié(e).
bonsoir
je suis sous ubuntu9.04 et je n'ai plus accès à mes données ni avec pgadmin ni avec phppgadmin
postgresql-8.3-main.log dit ceci :
2009-09-06 22:16:55 CEST LOG: paquet de démarrage incomplet
2009-09-06 22:16:55 CEST LOG: a reçu une demande d'arrêt rapide
2009-09-06 22:16:55 CEST LOG: annulation des transactions actives
2009-09-06 22:16:55 CEST LOG: arrêt du processus autovacuum
2009-09-06 22:16:55 CEST LOG: arrêt en cours
2009-09-06 22:16:56 CEST LOG: le système de base de données est arrêté
2009-09-07 21:01:18 CEST LOG: n'a pas pu charger le fichier du certificat racine « root.crt » : aucun code d'erreur SSL rapporté
2009-09-07 21:01:18 CEST DÉTAIL: Ne vérifiera pas les certificats du client.
2009-09-07 21:01:18 CEST LOG: le système de bases de données a été arrêté à 2009-09-06 22:16:56 CEST
2009-09-07 21:01:18 CEST LOG: paquet de démarrage incomplet
2009-09-07 21:01:18 CEST LOG: lancement du processus autovacuum
2009-09-07 21:01:18 CEST LOG: le système de bases de données est prêt pour accepter les connexions
2009-09-07 21:47:22 CEST LOG: paquet de démarrage incomplet
2009-09-07 21:47:22 CEST LOG: a reçu une demande d'arrêt rapide
2009-09-07 21:47:22 CEST LOG: annulation des transactions actives
2009-09-07 21:47:22 CEST LOG: arrêt du processus autovacuum
2009-09-07 21:47:22 CEST LOG: arrêt en cours
2009-09-07 21:47:22 CEST LOG: le système de base de données est arrêté
2009-09-07 21:53:52 CEST LOG: n'a pas pu charger le fichier du certificat racine « root.crt » : aucun code d'erreur SSL rapporté
2009-09-07 21:53:52 CEST DÉTAIL: Ne vérifiera pas les certificats du client.
2009-09-07 21:53:52 CEST LOG: le système de bases de données a été arrêté à 2009-09-07 21:47:22 CEST
2009-09-07 21:53:52 CEST LOG: paquet de démarrage incomplet
2009-09-07 21:53:52 CEST LOG: lancement du processus autovacuum
2009-09-07 21:53:52 CEST LOG: le système de bases de données est prêt pour accepter les connexions
Merci de votre aide.
Hors ligne
Donc à priori la base est démarrée et fonctionne bien.
Y a t'il d'autres messages d'erreur ?
Marc.
Hors ligne
Il n'y a aucun message d'erreur là-dedans. Juste des informations indiquant que le système démarre, et quelques temps après qu'il s'arrête.
Guillaume.
Hors ligne
j'ai lu qu'il y a un paquet incomplet au démarrage
j'ai fait le tour des paquets installés (entre autres)
postgresql 8.3.7-1
postgresql-client-8.3
postgresql-common
postgresql-8.3
et dans la catégorie "non-installés"
postgresql-server-dev-8
qu'en pensez-vous ?
merci
Hors ligne
Un paquet incomplet, il s'agit de paquet réseau et c'est un message habituel sous postgres et sans importance.
Quel est le message d'erreur lors de la connexion ?
Marc.
Hors ligne
server doesn't listen
the server doesn't accept connections : the connection library reports
could not connect to server : connexion terminée par expiration du délai d'attente. Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432 ?
If you encounter this message please check if the server you're trying to contact is actually running Postgresql on the given port. Test if you have network connectivity from your client to the server host using ping or equivalent tools. Is your network /VPN/SSH tunnel / firewall configured correctly ?
suivent quelques conseils ou informations
A priori je n'ai touché à rien dans la config.
mais j'ai enlevé les paquets mysql sur la machine (à priori pas de lien mais va savoir)
Hors ligne
Bizarre le fait qu'il parle de session qui part en timeout… pour commencer, est ce que postgres écoute sur son port ? De ce que je vois c'est un linux, ce qui va donc nous intéresser c'est le résultat de ces deux commandes (passées en tant que root)
* netstat -anpt (pour vérifier si postgres écoute)
* iptables -L -n (pour vérifier qu'il n'y a pas de règle de firewall)
Marc.
Hors ligne
réponse netstat
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:33163 0.0.0.0:* LISTEN 2195/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2173/portmap
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3044/cupsd
tcp 0 0 0.0.0.0:55415 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 2474/postgres
tcp 0 0 0.0.0.0:46815 0.0.0.0:* LISTEN 2703/rpc.mountd
tcp6 0 0 :::139 :::* LISTEN 2731/smbd
tcp6 0 0 :::445 :::* LISTEN 2731/smbd
réponse iptables
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Hors ligne
Donc il faut passer "listen_adresses" à * dans le postgresql.conf. Ça n'a jamais pu marcher autrement qu'en local si la conf était comme ça.
Je te conseille la lecture de ceci : http://blog.postgresql.fr/index.php?pos … PostgreSQL
Marc.
Hors ligne
oui mais je n'ai jamais cherché autre chose qu'à fonctionner en local
et actuellement cela ne fonctionne même plus en local.
je fais la modif conseillée.
Hors ligne
en dé-commentant la ligne listen_adresses='localhost' j'ai retrouvé mes données.
je lis le document conseillé.
merci pour l'aide
Hors ligne
En local, c'était bien via 127.0.0.1 ? parce que si c'est en local mais sur l'ip publique du serveur, ça ne marche pas.
Marc.
Hors ligne
l'affaire se complique (ou alors explique la phrase : parce que si c'est sur l'IP publique....qui est un peu obscure pour moi).
d'abord les faits
nouvel allumage de l'ordinateur
plus de connexion internet
mais je peux me connecter à postgresql
si je fais
dhclient eth0
je retrouve ma connexion internet
et je perds l'accès à postgresql
dans postgresql.conf listen_addresses = 'localhost' n'est pas de-commentée.
Hors ligne
le listen_addresses doit être décommenté et valoir '*'
Marc.
Hors ligne
pardon, j'ai écrit le contraire de ce que j'ai fait
la ligne est bien décommentée.
Je remplace 'localhost' par '*'
Hors ligne
le réglage de postgresql.conf sur listen_adresses='*' ne résout rien
toujours impossible de se connecter
réponse
server doesn't listen
could not connect to server : connexion refusée Is the server running on host "127.0.0.1" and accepting TC/IP connection on port 5432 ?
pour le port 5432 la réponse est oui
server running sur localhost : je ne saurais dire mais si la question a été posée à l'installation j'ai très certainement répondu oui.
mais il ya certainement une commande ou un fichier permettant de le vérifier.
Hors ligne
maintenant que le paramètre a été changé dans postgresql.conf, pouvez vous refaire le netstat ?
Marc.
Hors ligne
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 0.0.0.0:44449 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2157/portmap
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3042/cupsd
tcp 0 0 0.0.0.0:59483 0.0.0.0:* LISTEN 2179/rpc.statd
tcp 0 0 0.0.0.0:35679 0.0.0.0:* LISTEN 2680/rpc.mountd
tcp 0 0 192.168.0.10:50349 209.85.229.138:80 ESTABLISHED 5670/firefox
tcp 0 0 192.168.0.10:49581 209.85.229.103:80 ESTABLISHED 5670/firefox
tcp 0 0 192.168.0.10:45911 209.85.229.138:80 ESTABLISHED 5670/firefox
tcp 0 0 192.168.0.10:34112 209.85.229.104:80 ESTABLISHED 5670/firefox
tcp 0 0 192.168.0.10:47031 209.85.229.113:80 ESTABLISHED 5670/firefox
tcp6 0 0 :::139 :::* LISTEN 2708/smbd
tcp6 0 0 :::445 :::* LISTEN 2708/smbd
Hors ligne
Postgresql ne semble pas démarré (il n'écoute plus du tout sur le réseau). Est il visible dans la liste des processus ?
Marc.
Hors ligne
dans les services le serveur postgresql est lancé au démarrage
mais il n'apparait pas dans les processus
Hors ligne
la commande /etc/init.d/postgresql-8.3 start
m'a ressorti l'erreur suivante
* Starting PostgreSQL 8.3 database server
* The PostgreSQL server failed to start. Please check the log output:
2009-09-12 09:53:40 CEST LOG: n'a pas pu charger le fichier du certificat racine « root.crt » : aucun code d'erreur SSL rapporté
2009-09-12 09:53:40 CEST DÉTAIL: Ne vérifiera pas les certificats du client.
2009-09-12 09:53:40 CEST FATAL: n'a pas pu créer le segment de mémoire partagée : Argument invalide
2009-09-12 09:53:40 CEST DÉTAIL: L'appel système qui a échoué était shmget(clé=5432001, taille=53796864, 03600).
2009-09-12 09:53:40 CEST ASTUCE : Cette erreur signifie habituellement que la demande de PostgreSQL pour un
segment de mémoire partagée a dépassé le paramètre SHMMAX de votre noyau.
Vous pouvez soit réduire la taille de la requête soit reconfigurer le noyau
avec un SHMMAX plus important. Pour réduire la taille de la requête
(actuellement 53796864 octets), réduisez le paramètre de shared_buffers de
PostgreSQL (actuellement 6144) et/ou le paramètre max_connections
(actuellement 13).
Si la taille de la requête est déjà petite, il est possible qu'elle soit
moindre que le paramètre SHMMIN de votre noyau, auquel cas, augmentez la
taille de la requête ou reconfigurez SHMMIN.
La documentation de PostgreSQL contient plus d'informations sur la
configuration de la mémoire partagée.
...fail!
j'ai réduit la valeur de la ligne suivante dans postgreql.conf
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------
# - Memory -
shared_buffers = 24MB
et je peux accéder à nouveau au serveur (modification de la ligne lisen_adresses='*' incluse)
merci pour la patience
Hors ligne
OK. Par contre 24 Mo de shared buffers, c'est faible s'il s'agit d'un serveur de production
Marc.
Hors ligne
c'est lors de votre demande de modifier la ligne listen_adresse que j'ai lu ce fichier et augmenter le shared_buffers en me disant que ma machine (2G0 de RAM, duo core 2x1,7Ghz) pouvait accepter plus.
Comme quoi quand on a des ennuis ne pas rajouter des variables supplémentaires.
Cependant, si je reviens au tout début du problème je ne comprend pas pourquoi avec la config cela a marché pendant des mois et que tout d'un coup le système s'est aperçu que listen_adresses était à localhost.
Hors ligne
Comme ça après coup, ça va être difficile…
Marc.
Hors ligne
Pour revenir deux secondes au problème de shared_buffers, il faut bien penser à augmenter le shmmax pour que Linux accepte qu'une application dispose d'autant de mémoire partagée (/proc/sys/kernel/shmmax pour la valeur actuelle, et /etc/sysconf.conf pour la configurer autrement).
Guillaume.
Hors ligne