Estou testando o recurso de "pausa" do pgbouncer para minimizar o tempo de inatividade do banco de dados quando uma reinicialização do banco de dados é necessária.
Para este teste, tenho uma sessão psql remota conectada ao meu banco de dados por meio do pgbouncer. Pgbouncer SHOW CLIENTS mostra minha sessão remota como ativa, mesmo sem nenhuma consulta em execução. O mesmo cliente mostra Idle de acordo com pg_stat_activity. Quando eu emito o comando PAUSE, ele trava até eu fechar minha sessão remota. O PAUSE não deveria funcionar sem fechar minha conexão?
Pelo menos com
pool_mode=session
, parece que um comando 'PAUSE' será bem-sucedido apenas se o(s) outro(s) cliente(s) ainda não tiverem emitido nenhuma consulta em suas sessões. Caso o(s) outro(s) cliente(s) já tenham emitido alguma consulta, o botão 'PAUSE;' comando trava como você descreve.Isso basicamente faz sentido do ponto de vista do PgBouncer, pois ele não precisa fornecer uma conexão real a um cliente antes que o cliente emita qualquer consulta, mas uma vez que ele faça uma 'PAUSA' deve esperar que o cliente termine sua sessão.