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 15/10/2008 09:56:49

techno13
Membre

Problèmes à l'initialisation de la base de donnée

Bonjour à tous,
Voilà mon problème :
Je veux initialiser la base de donnée postgres pour l'utilisateur OX (par exemple), bien sûr je veux installer open Xchange, je sais, quel challenge !
Je suis sur Mac OS,
la commande que j'utilise est :
/usr/local/bin/initdb -D /usr/local/pgsql/data

le résultat est :
The files belonging to this database system will be owned by user "ox".
This user must also own the server process.

The database cluster will be initialized with locale C.

creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 10
selecting default shared_buffers/max_fsm_pages ... 400kB/20000
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... FATAL:  could not create shared memory segment: Cannot allocate memory
DETAIL:  Failed system call was shmget(key=3, size=1646592, 03600).
HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space. To reduce the request size (currently 1646592 bytes), reduce PostgreSQL's shared_buffers parameter (currently 50) and/or its max_connections parameter (currently 10).
        The PostgreSQL documentation contains more information about shared memory configuration.
child process exited with exit code 1
initdb: removing data directory "/usr/local/pgsql/data"

pourtant j'avais déjà augmenté la mémoire dans le fichier sysctl.conf

avec les valeurs suivantes à la commande :

sysctl -A | grep shm
kern.sysv.shmmax=16777216
kern.sysv.shmmin=1
kern.sysv.shmmni=128
kern.sysv.shmseg=32
kern.sysv.shmall=4096

alors quelqu'un sait-il comment :

réduire le "request size (currently 1646592 bytes)"

réduire les "PostgreSQL's shared_buffers parameter (currently 50)"

et

réduire le "max_connections parameter (currently 10)"

Que faut-il faire exactement ?
Sur quel fichier doit-on intervenir ?
Où la documentation traite-t-elle de ce problème, comme le dit la console :

"The PostgreSQL documentation contains more
information about shared memory configuration."

Est-ce vrai ? !

Si quelqu'un a des réponses à toutes ces questions ...

merci

Hors ligne

#2 15/10/2008 11:02:01

gleu
Administrateur

Re : Problèmes à l'initialisation de la base de donnée

Dans le cas du initdb, il n'est pas possible de spécifier des valeurs pour le shared_buffers et pour le max_connections. De toute façon, vous arrivez aux valeurs les plus basses possibles par initdb. D'où l'échec final.

Il vous faut donc paramétrer correctement les valeurs kern.sysv, comme l'indique la documentation sur http://docs.postgresql.fr/8.3/kernel-resources.html . Apparemment, je ne vois pas de problème sur votre configuration. Avez-vous redémarré votre serveur après modification du fichier /etc/sysctl.conf ?


Guillaume.

Hors ligne

#3 15/10/2008 12:12:28

techno13
Membre

Re : Problèmes à l'initialisation de la base de donnée

Bonjour gleu,

Merci pour votre réponse rapide et claire. Effectivement je vois que je suis parvenu à la limite de l'ordi, mais je vais tenter d'aller un peu plus loin avec les infos que vous m'avez transmises et qui me sont d'un grand secours.
Si je parviens mes fins, je vous transmettrai la solution, ça peut servir à d'autres !

Bon courage
a+
jano

Hors ligne

#4 15/10/2008 12:14:35

gleu
Administrateur

Re : Problèmes à l'initialisation de la base de donnée

Pas aux limites du serveur, mais plutôt aux limites de la configuration actuelle du système d'exploitation. À mon avis, il faut revoir /etc/sysctl.conf et s'assurer de redémarrer après.


Guillaume.

Hors ligne

Pied de page des forums