Resolvendo waiting ou idle transaction no PostgreSQL
Dica publicada em Shell Script / Miscelânea
Resolvendo waiting ou idle transaction no PostgreSQL
Por diversas vezes me deparo com usuários conectados ao banco de dados com a sua conexão travando alguma tabela,
nisso causa um desconforto maior pois todos as conexões que estão tentando utilizar esta tabela também ficarão "travadas".
Para resolver isso crie um script que irá derrubar estas conexões.
# nano processo.sh
Cole as seguintes linhas:
Salve e torne-o para executável:
# chmod +x processo.sh
E execute da seguinte forma:
# ./processo.sh waiting
ou
# ./processo.sh transaction
Este processo pode ser adaptado para ser feito de tempos em tempos no crontab.
Obs.: O campo "grep postgres" só coloquei para sempre só funcionar com conexões do postgres, para não correr o risco de matar um processo importante.
Para resolver isso crie um script que irá derrubar estas conexões.
# nano processo.sh
Cole as seguintes linhas:
#!/bin/bash
for X in `ps aux | grep postgres | grep $1 | awk {'print $2'}`;
do
kill $X;
done
for X in `ps aux | grep postgres | grep $1 | awk {'print $2'}`;
do
kill $X;
done
Salve e torne-o para executável:
# chmod +x processo.sh
E execute da seguinte forma:
# ./processo.sh waiting
ou
# ./processo.sh transaction
Este processo pode ser adaptado para ser feito de tempos em tempos no crontab.
Obs.: O campo "grep postgres" só coloquei para sempre só funcionar com conexões do postgres, para não correr o risco de matar um processo importante.