我正在使用PostgreSQL 8.4和PostGIS 1.5。我要做的是将数据从一个表插入另一个表(但不是严格相同的数据)。对于每列,运行一些查询,表中总共存储了50143行。但是查询占用了大量资源:在查询运行几分钟后,连接丢失。它发生了大约21-22k MS进入查询的执行,之后我必须再次手动启动DBMS。我该如何解决这个问题?
错误消息如下:
[Err] server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
此外,这是psql错误日志:
2013-07-03 05:33:06 AZOST HINT: In a moment you should be able to reconnect to the database and repeat your command.
2013-07-03 05:33:06 AZOST WARNING: terminating connection because of crash of another server process
2013-07-03 05:33:06 AZOST DETAIL: The postmaster has commanded this server process to roll back the current transaction and exit, because another server process exited abnormally and possibly corrupted shared memory.
答案 0 :(得分:1)
我的猜测,读到你的问题,就是你遇到了内存问题。克雷格建议关闭过度使用是一个很好的建议。如果这是一个大查询,您可能还需要减少work_mem
。这可能会减慢您的查询速度,但会释放内存。 work_mem
是每个操作,因此查询可以多次使用该设置。
另一种可能性是你在PostgreSQL中的C语言模块中遇到某种错误。如果是这种情况,请尝试更新到最新版本的PostGIS等。