¿Existe una opción de tiempo de espera para el acceso remoto a la base de datos PostgreSQL?

9

Estoy trabajando a través de pgAdmin III en una base de datos remota de PostgreSQL. Después de un período no tan largo (digamos 10-15 min.) Sin hacer nada en pgAdmin, la conexión caduca automáticamente. Por lo tanto, tengo un mensaje de error que me pregunta si quiero volver a conectar. Esto lleva unos 10 segundos. y la estructura de la base de datos se colapsa, así que tengo que volver a abrir los esquemas que tenía abiertos antes.

¿Hay alguna manera de cambiar un parámetro de tiempo de espera en algún lugar para evitar que la conexión caduque por un período de tiempo más largo?

wiltomap
fuente

Respuestas:

8

Una conexión de servidor PostgreSQL que se cae después de 10-15 minutos es casi seguramente causada por un firewall de seguimiento de estado (posiblemente usando la traducción de direcciones de red (NAT)) entre el cliente y el servidor. Muchos de estos firewalls tienen tiempos de espera predeterminados de 15 minutos (900 segundos).

Los tres parámetros del lado del servidor, tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_countestán diseñados para ayudar en estas situaciones. Consulte la documentación que se encuentra aquí: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

También hay parámetros del lado del cliente para esto: keepalives, keepalives_idle, keepalives_interval, keepalives_count, la cual se puede establecer la conexión. Consulte la documentación que se encuentra aquí: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

Colin 't Hart
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Paul White 9