sshトンネル接続でSELECTクエリを実行し、大きな(> 550 MBのデータ)結果セットを受け取るときに問題が発生します。 SELECTクエリはローカルで、つまりPostgreSQLサーバが存在するサーバと同じサーバ上で動作します。sshトンネル経由でSELECTクエリの結果セットのサイズ制限 - postgresql
エラーメッセージは、クライアント側では、以下のとおりです。私は、サーバーのログは、より詳細なこれらの多くは登場製サーバ側(postgresql.log)
08006: could not receive data from client: Connection reset by peer
上
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
connection to server was lost
エラーメッセージ私は彼らが手元の問題に無関係であると推測します:
LOG: 08P01: SSL error: unsafe legacy renegotiation disabled
私はpostgresを見つけませんでした「リモート結果セットの最大サイズ」を制御するためのオプションなどがあります。
エラーが発生する前に使用されていた最大メモリは約519 MBです(VmDataは/ proc/PID/status)。その後、クエリは1分55秒間実行されます。 postgres confファイルにはstatement_timeoutが設定されていません。
私は一度にすべてのデータをメモリに入れなければならないので、カーソルなどはオプションではありません。
のPostgresサーバのバージョン8.3
実際これがポイントです!しかし、堅牢性を高めるために、リミット/オフセットとデータベース接続のクローズとオープンを使用して、複数の束にデータをロードすることを選択しました。ありがとう! –
@EwaldKeinNachname:複数の接続は厳密には必要ありません。 SSLの再交渉が終わったら、1回のスワップで512 MBはまったく問題ありません。私は間にテーブルへの書き込み操作が手続きを混乱させる可能性があることを認識していると思いますか?あなたが丈夫さを気にしているなら、システム(SSLライブラリ)とあなたのバージョンのPostgreSQLを更新したいかもしれません。どちらもかなり古いです。 –