查询在PostgreSQL中运行几分钟后连接丢失

时间:2013-07-03 04:30:14

标签: postgresql postgis

我正在使用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.

1 个答案:

答案 0 :(得分:1)

我的猜测,读到你的问题,就是你遇到了内存问题。克雷格建议关闭过度使用是一个很好的建议。如果这是一个大查询,您可能还需要减少work_mem。这可能会减慢您的查询速度,但会释放内存。 work_mem是每个操作,因此查询可以多次使用该设置。

另一种可能性是你在PostgreSQL中的C语言模块中遇到某种错误。如果是这种情况,请尝试更新到最新版本的PostGIS等。