Обсуждение: 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