Existe uma opção de tempo limite para acesso remoto ao banco de dados PostgreSQL?

9

Estou trabalhando via pgAdmin III em um banco de dados remoto do PostgreSQL. Após um período não muito longo (digamos 10 a 15 minutos) sem fazer nada no pgAdmin, a conexão expira automaticamente. Por isso, tenho uma mensagem de erro perguntando se quero reconectar. Isso leva cerca de 10 segundos. e a estrutura do banco de dados entra em colapso, então eu tenho que reabrir os esquemas que eu tinha aberto antes.

Existe uma maneira de alterar um parâmetro de tempo limite em algum lugar para impedir que a conexão expire por um longo período de tempo?

wiltomap
fonte

Respostas:

8

Uma conexão do servidor PostgreSQL que cai após 10 a 15 minutos está quase certamente sendo causada por um firewall de rastreamento de estado (possivelmente usando a conversão de endereços de rede (NAT)) entre o cliente e o servidor. Muitos desses firewalls têm tempos limite padrão de 15 minutos (900 segundos).

Os três parâmetros do lado do servidor, tcp_keepalives_idle, tcp_keepalives_interval, tcp_keepalives_countsão projetados para ajudar nestas situações. Consulte a documentação localizada aqui: http://www.postgresql.org/docs/9.2/static/runtime-config-connection.html#GUC-TCP-KEEPALIVES-IDLE

Há também os parâmetros do lado do cliente para isso: keepalives, keepalives_idle, keepalives_interval, keepalives_count, que pode definir na conexão. Consulte a documentação localizada aqui: http://www.postgresql.org/docs/9.2/static/libpq-connect.html#LIBPQ-KEEPALIVES

Colin 't Hart
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Paul White 9