Em 29 de setembro de 2013 09:51, Matheus de Oliveira < [email protected]> escreveu:
> > > > 2013/9/27 Jean Pereira <[email protected]> > >> On 09/26/2013 07:57 PM, Matheus de Oliveira wrote: >> >> >> >> >> 2013/9/26 Adriano Espinoza de Oliveira <[email protected]> >> >>> Boa tarde pessoal. >>> >>> >> Boa noite... =D >> >> >> >>> Hje de manhã tivemos "too many clients" no banco, eu não esta na >>> empresa, e o adm de redes foi lá e derrubou um monte de conexões do >>> postgres que ele achou q eram antigas... >>> >>> >> Bom, a alguns anos atrás, fiz isso também, se não me engano também >> era na versão 8.x (não lembro exato porque faz tempo, talvez seja a 7.x). >> >> >> Derrubou como? Se foi um "kill -9" é bom dar um "kill -9 `pidof >> cara_que_fez_isso`"... =P >> >> >> Estou brincando viu, vamos lá ... >> >> O banco ficou inacessível, ele fez um restart do banco, que não subiu. >>> Teve que apagar o PID na unha e depois o banco subiu... >>> >>> >> Ok. Normal... >> >> >> >>> Depois disso, quando cheguei, notei que o banco estava se derrubando >>> e subindo sozinho, exibindo essas mensagens: >>> >>> * 2013-09-26 12:09:25 BRT [18539]: [1-1] db=,user= LOG: server >>> process (PID 23040) was terminated by signal 6* >>> * 2013-09-26 12:09:25 BRT [18539]: [2-1] db=,user= LOG: terminating >>> any other active server processes* >>> *10.11.0.2 2013-09-26 12:09:25 BRT [23043]: [3-1] >>> db=cimed,user=postgres WARNING: terminating connection because of crash of >>> another server process* >>> *(...)* >>> >>> >> (...) >> >> >> Como um velho conhecido meu fala, o kill é o ultimo do ultimo caso. >> > > Na verdade o kill em si não é tão problemático assim, você pode, > tranquilamente usar um `kill -SIGTERM` num backend do postgres para fazer > com que ele cancele a operação e feche a conexão normalmente, é o que o > `pg_terminate_backend` faz (só não tenho certeza absoluta que na 8.1 já era > assim, mas creio que sim), ou ainda, executar um `kill -SIGINT` e fazer com > que ele só cancele a operação corrente, o que é equivalente ao > `pg_cancel_backend`. > > Inclusive, você pode fazer o mesmo com o postmaster [2]. > > Agora, o `kill -9` (SIGKILL) não pode ser "ouvido" pelo PostgreSQL, então > é abrupto e não dá chance do pobre elefante se proteger, podendo levar à > problemas mais sérios (como esse). > > > Pois é Matheus, costumamos falar que o Kill -9 é igual tiro na cabeça: "estraga o velório". kkkk Tenho certeza que o adm que fez isso não vai fazer mais.. > Já que você deve ter conexões reservadas ao postgres, e o mesmo consegue >> matar conexão por dentro do banco. >> >> > Esse é um ponto muito importante. Vejo muita gente usando o superusuário > para como usuário da aplicação, isso é COMPLETAMENTE ERRADO. Inclusive pela > mensagem de warning do colega, parece que esse era o caso... ouch... > > [1] > http://www.postgresql.org/docs/current/static/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL-TABLE > [2] http://www.postgresql.org/docs/8.1/static/postmaster-shutdown.html > > Atenciosamente, > -- > Matheus de Oliveira > Analista de Banco de Dados > Dextra Sistemas - MPS.Br nível F! > www.dextra.com.br/postgres > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
