web-dev-qa-db-ja.com

PostgreSQLデータベースへのリモートアクセスのタイムアウトオプションはありますか?

私は働いていますviaリモートのPostgreSQLデータベースでpgAdmin III。 pgAdminで何もせずにそれほど長くない期間(たとえば10〜15分)が経過すると、接続は自動的に期限切れになります。そのため、再接続するかどうかを尋ねるエラーメッセージが表示されます。これには約10秒かかります。データベース構造が崩れるため、以前開いていたスキーマを再度開く必要があります。

タイムアウトパラメータをどこかに変更して、接続の有効期限が長くなるのを防ぐ方法はありますか?

9
wiltomap

10〜15分後にPostgreSQLサーバーの接続が切断されるのは、ほとんどの場合、クライアントとサーバーの間の状態追跡ファイアウォール(ネットワークアドレス変換(NAT)を使用している)が原因です。このようなファイアウォールの多くは、デフォルトのタイムアウトが15分(900秒)です。

3つのサーバー側パラメーターtcp_keepalives_idletcp_keepalives_intervaltcp_keepalives_countは、これらの状況で役立つように設計されています。ここにあるドキュメントを参照してください: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

これにはクライアント側パラメーターもあります:keepaliveskeepalives_idlekeepalives_intervalkeepalives_count、これは接続時に設定できます。ここにあるドキュメントを参照してください: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

8
Colin 't Hart