Gibt es eine Timeout-Option für den Remotezugriff auf die PostgreSQL-Datenbank?

9

Ich arbeite über pgAdmin III an einer entfernten PostgreSQL-Datenbank. Nach einer nicht so langen Zeit (z. B. 10-15 Minuten), ohne etwas in pgAdmin zu tun, läuft die Verbindung automatisch ab. Ich habe daher eine Fehlermeldung, in der ich gefragt werde, ob ich erneut eine Verbindung herstellen möchte. Dies dauert ungefähr 10 Sekunden. und die Datenbankstruktur bricht zusammen, sodass ich die zuvor geöffneten Schemas erneut öffnen muss.

Gibt es eine Möglichkeit, einen Timeout-Parameter irgendwo zu ändern, um zu verhindern, dass die Verbindung für einen längeren Zeitraum abläuft?

wiltomap
quelle

Antworten:

8

Eine PostgreSQL-Serververbindung, die nach 10 bis 15 Minuten unterbrochen wird, wird mit ziemlicher Sicherheit durch eine State-Tracking-Firewall (möglicherweise mithilfe von Network Address Translation (NAT)) zwischen dem Client und dem Server verursacht. Viele solcher Firewalls haben Standardzeitlimits von 15 Minuten (900 Sekunden).

Die drei serverseitige Parameter tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_countsind in diesen Situationen zu Hilfe entworfen. Siehe die Dokumentation hier: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

Es gibt auch clientseitige Parameter für diese: keepalives, keepalives_idle, keepalives_interval, keepalives_count, die Sie auf Verbindung setzen können. Siehe die Dokumentation hier: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

Colin 't Hart
quelle
Kommentare sind nicht für eine ausführliche Diskussion gedacht. Dieses Gespräch wurde in den Chat verschoben .
Paul White 9