Os clientes se conectam ao nosso banco de dados PostgreSQL 8.3, mas deixam as conexões abertas. É possível configurar o PostgreSQL para fechar essas conexões após uma certa inatividade?
relate perguntas
-
Posso ativar o PITR depois que o banco de dados foi usado
-
Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo
-
Os procedimentos armazenados impedem a injeção de SQL?
-
Sequências Biológicas do UniProt no PostgreSQL
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
Finalmente, tenho uma solução. Usarei a ferramenta PgBouncer com seu parâmetro
server_idle_timeout
.Outra abordagem consistiria em usar alguma ferramenta semelhante ao cron executando uma consulta periodicamente para encontrar conexões ociosas.
Assim que essas conexões ociosas forem encontradas, uma simples chamada para
pg_terminate_backend
as fechará.Veja uma descrição detalhada dessa abordagem na resposta da seguinte pergunta:
Como fechar conexões ociosas no PostgreSQL automaticamente?
Desde o Postgres 9.5 você pode configurar um timeout para conexão no estado "idle in transaction" - que é um pouco diferente apenas "idle" mas normalmente a conexão "idle in transaction" gera mais problemas
Consulte o manual para obter detalhes: idle_in_transaction_session_timeout