Resolvendo waiting ou idle transaction no PostgreSQL

Publicado por Caio Ferreira Dias em 10/08/2011

[ Hits: 13.438 ]

 


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:

#!/bin/bash

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.

Outras dicas deste autor

Script Reindex PostgreSQL com envio de email de notificação

Ubuntu 11.04 - Placa wireless parou de funcionar com o kernel 2.6.39.x?

Autovacuum do PostgreSQL

Verificar triggers desabilitadas no PostgreSQL

Leitura recomendada

hwclock - Ajustando data e hora do hardware

"Bleeding Edge" para o seu Ubuntu 32 bits

Escondendo / Personalizando mensagens de erro no prompt

Shell Script para colorir seus scripts

FATAL: Module ndiswrapper not found - Linux Mint Debian

  

Comentários
[1] Comentário enviado por luizvida em 16/08/2011 - 23:02h

E mesmo...? Hum... Coisa feia...



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts