On FreeBSD 5.1 using PgSQL 7.4b2 initdb failed with:
su-2.05b$ ./initdb -D /data/pgsql
The files belonging to this database system will be owned by user
"postgres".
This user must also own the server process.
The database cluster will be initialized with locale C.
fixing permissions on existing directory /data/pgsql... ok
creating directory /data/pgsql/base... ok
creating directory /data/pgsql/global... ok
creating directory /data/pgsql/pg_xlog... ok
creating directory /data/pgsql/pg_clog... ok
selecting default shared_buffers... 1000
selecting default max_connections... 40
creating configuration files... ok
creating template1 database in /data/pgsql/base/1... ./postgres -boot
-x1 -F -D/data/pgsql template1
FATAL: could not create semaphores: No space left on device
DETAIL: Failed syscall was semget(4, 17, 03600).
HINT: This error does *not* mean that you have run out of disk space.
It occurs when either the system limit for the maximum number of
semaphore sets (SEMMNI), or the system wide maximum number of semaphores
(SEMMNS), would be exceeded. You need to raise the respective kernel
parameter. Alternatively, reduce PostgreSQL's consumption of semaphores
by reducing its max_connections parameter (currently 100).
The PostgreSQL documentation contains more information about configuring
your system for PostgreSQL.
initdb: failed
Why does initdb use max_connections=100, but "selecting default
max_connections" gives 40 ?
This patch solves the problem:
--- initdb.orig Wed Sep 3 09:49:01 2003
+++ initdb Wed Sep 3 09:50:38 2003
@@ -575,7 +575,7 @@
break
fi
done
-
+PGSQL_OPT="$PGSQL_OPT -c max_connections=$nconns"
echo "$nconns"
##########################################################################
Regards,
--
Janko Richter