Finalizando processos no banco postgresql

Mini-bomba do dia:

Rotina de exclusão de banco/usuario postgres não era executada quando haviam conexões em idle ou queries sendo executadas no momento.

Depois de um tempo de pesquisa eis a solução:

SELECT pg_cancel_backend(procpid) FROM pg_stat_activity WHERE usename = 'BANCO_DE_DADOS';
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE usename = 'BANCO_DE_DADOS';

Bonus stage:
Para visualizar as conexões ativas e garantir que matou todos os pids:

select * from pg_stat_activity WHERE datname='BANCO_DE_DADOS';

Atualização: a function pg_terminate_backend() só funciona em postgre 8.4 ou superior, logo estou procurando outra opção via query  em versões antigas, pois matar os pids via kill não eh uma alternativa no que estou fazendo.

Instalar Módulos PERL

Sempre que me deparava erros como o abaixo em um perl, quase chorava, agora graças ao totoro ficou bem simples!

Exemplo de erro:

Can’t locate FCGI.pm in @INC (@INC contains: /etc/perl /usr/lib64/perl5/site_perl/5.12.3/x86_64-linux /usr/lib64/perl5/site_perl/5.12.3 /usr/lib64/perl5/vendor_perl/5.12.3/x86_64-linux /usr/lib64/perl5/vendor_perl/5.12.3 /usr/lib64/perl5/site_perl /usr/lib64/perl5/vendor_perl /usr/lib64/perl5/5.12.3/x86_64-linux /usr/lib64/perl5/5.12.3 /usr/local/lib/site_perl .) at /usr/local/bin/fastcgi-wrapper.pl line 3.
BEGIN failed–compilation aborted at /usr/local/bin/fastcgi-wrapper.pl line 3

Solução:

perl -eshell -MCPAN
install FCGI

OBS: Case sensitive (sim, tive problema com isso :P)

———————————————-
Posted Listening:  “Back to Madness – Stratovarius”