4

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.
4

1 に答える 1

2

私の推測では、あなたの問題を読んで、あなたはメモリ不足の問題を抱えているということです。オーバーコミットをオフにするという Craig の提案は良いものです。work_memこれが大きなクエリの場合は、削減する必要がある場合もあります。これにより、クエリが遅くなる可能性がありますが、メモリが解放されます。 work_mem操作ごとであるため、クエリはその設定を何度も使用できます。

別の可能性として、PostgreSQL の C 言語モジュールで何らかのバグが発生している可能性があります。その場合はPostGISなどを最新版にアップデートしてみてください。

于 2013-10-29T04:14:31.460 に答える