Em 02-08-2012 11:41, Eurides Baptistella escreveu:
> Pessoal, peço auxilio com um problema que tive.
>
> Hoje um servidor com banco Postgres parou e não subia mais, a mensagem
> que dava ao tentar iniciar era “pg_ctl: PID file
> "/usr/local/pgsql/data/postmaster.pid" does not exist Server running?”.

Engraçado. Esse arquivo não deveria *mesmo* existir ao iniciar o 
PostgreSQL. Esse arquivo existe quando o PostgreSQL está rodando.

Qual é a versão do PostgreSQL e qual seu S.O. e versão?

> Procurando em alguns logs do banco, identifiquei que em determinado
> momento o serviço foi parado, automaticamente o postmaster.pid foi
> excluído mas restou alguma coisa que manteve o serviço como registrado,
> a partir dai não eu não conseguia mais subir o banco.

Tem certeza que não ficou nenhum dos processos?
Como você verificou que o PostgreSQL parou mesmo?

> Após alguns testes, executei o comando pg_ctl -D < directory> status e
> encontrei o problema, então com pg_ctl -D <directory> start consegui com
> que o banco subisse novamente.

E qual foi o problema que você encontrou? Você não contou.

> Mas a pergunta é porque o banco baixou e não conseguiu mais subir? O que
> fez com que apenas parte dos arquivos que identificam que o banco esteja
> rodando (postmaster.pid) fossem excluídos (pois quando o banco é parado
> esses arquivos são excluídos automaticamente)? Alguém tem essas informações?

É necessário saber as versões como pedi acima.
O postmaster.pid deve ser removido sim ao parar o banco.

> O que acredito é que no momento de parar (/etc/init.d/postgres stop) o
> banco tinha conexões em transação ou algo do tipo, e em virtude disso
> não conseguiu parar completamente! O que acham ??

Veja os modos de parar o PostgreSQL em [1] (pra versão 9.1).
Seu script em /etc/init.d/postgres está fazendo a coisa certa?

Por exemplo, no modo immediate o PostgreSQL simplesmente... morre! E 
ficam coisas pra trás e a resolver na próxima inicialização.

E sim, é possível que algum processo tenha ficado funcionando dependendo 
do tipo de parada que você fez (smart ou fast) e, por isso, a 
inicialização não funcionou, pra proteger seus dados enquando outro 
processo ainda está trabalhando.

[1] http://www.postgresql.org/docs/9.1/interactive/app-pg-ctl.html

[]s

Flavio Henrique A. Gurgel
Consultor e Instrutor 4Linux
Tel: +55-11-2125-4747
www.4linux.com.br
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a