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

Responder a