Existe-t-il une option de délai d'attente pour l'accès à distance à la base de données PostgreSQL?

9

Je travaille via pgAdmin III sur une base de données PostgreSQL distante. Après une période non longue (disons 10 à 15 minutes) sans rien faire dans pgAdmin, la connexion expire automatiquement. J'ai donc un message d'erreur me demandant si je veux me reconnecter. Cela prend environ 10 secondes. et la structure de la base de données s'effondre, je dois donc rouvrir les schémas que j'avais ouverts auparavant.

Existe-t-il un moyen de modifier un paramètre de délai d'attente quelque part afin d'empêcher la connexion de se terminer pendant une période plus longue?

wiltomap
la source

Réponses:

8

Une connexion au serveur PostgreSQL coupant après 10 à 15 minutes est presque certainement causée par un pare-feu de suivi d'état (éventuellement à l'aide de la traduction d'adresses réseau (NAT)) entre le client et le serveur. De nombreux pare-feu ont des délais d'expiration par défaut de 15 minutes (900 secondes).

Les trois paramètres côté serveur, tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_countsont conçus pour aider dans ces situations. Voir la documentation située ici: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

Il y a aussi des paramètres côté client pour cela: keepalives, keepalives_idle, keepalives_interval, keepalives_count, que vous pouvez définir la connexion. Voir la documentation située ici: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

Colin 't Hart
la source
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Paul White 9