Обсуждение: IpcMemoryCreate: shmget(key=5432001, size=1441792, 03600) failed: Not enough memory
IpcMemoryCreate: shmget(key=5432001, size=1441792, 03600) failed: Not enough memory
От
Murali Mohan Kasetty
Дата:
Hi all,
I am using PostgreSQL version 7.2 in WIndows 2000. The postmaster
reports
the following problem and quits when lot of data is being inserted into
the
database.
Has anybody encountered a similar problem. If so, what is the solution
to
this. Are there any patches available for this error. Should we migrate
to a
different version.
We are going live this month end and it has become a show stopper now.
Thanks to all in advance for the response.
FATAL 2: link from /usr/local/pgsql/data/pg_xlog/0000000000000019 to
/usr/local
/pgsql/data/pg_xlog/000000000000001F (initialization of log file 0,
segment
31)
failed: Permission denied
DEBUG: server process (pid 2496) exited with exit code 2
DEBUG: terminating any other active server processes
NOTICE: Message from PostgreSQL backend:
The Postmaster has informed me that some other backend
died abnormally and possibly corrupted shared memory.
I have rolled back the current transaction and am
going to terminate your database system connection and exit.
Please reconnect to the database system and repeat your query.
NOTICE: Message from PostgreSQL backend:
The Postmaster has informed me that some other backend
died abnormally and possibly corrupted shared memory.
I have rolled back the current transaction and am
going to terminate your database system connection and exit.
Please reconnect to the database system and repeat your query.
DEBUG: all server processes terminated; reinitializing shared memory
and
semaph
ores
IpcMemoryCreate: shmget(key=5432001, size=1441792, 03600) failed: Not
enough
mem
ory
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 1441792 bytes), reduce
PostgreSQL's shared_buffers parameter (currently 64) and/or
its max_connections parameter (currently 32).
The PostgreSQL Administrator's Guide contains more information about
shared memory configuration.
Best Regards
- Geetha
----------------------------------------------------
Hewlett Packard (India)
+91 80 2051382 (Phone)
847 1382 (HP Telnet)
----------------------------------------------------
Вложения
Murali Mohan Kasetty <kasetty@india.hp.com> writes:
> I am using PostgreSQL version 7.2 in WIndows 2000.
> FATAL 2: link from /usr/local/pgsql/data/pg_xlog/0000000000000019 to
> /usr/local
> /pgsql/data/pg_xlog/000000000000001F (initialization of log file 0,
> segment
> 31)
> failed: Permission denied
There is a post-7.2 change in src/backend/access/transam/xlog.c that
seems relevant. The code causing this error report is
/*
* Prefer link() to rename() here just to be really sure that we don't
* overwrite an existing logfile. However, there shouldn't be one, so
* rename() is an acceptable substitute except for the truly paranoid.
*/
#ifndef __BEOS__
if (link(tmppath, path) < 0)
elog(STOP, "link from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);
unlink(tmppath);
#else
if (rename(tmppath, path) < 0)
elog(STOP, "rename from %s to %s (initialization of log file %u, segment %u) failed: %m",
tmppath, path, log, seg);
#endif
and in 7.3 the #ifndef has become
#if !defined(__BEOS__) && !defined(N_PLAT_NLM) && !defined(__CYGWIN__)
so it would seem that link() doesn't work on CYGWIN either. I'd suggest
altering the 7.2 code this way and recompiling.
regards, tom lane