Então, não deveria mesmo existir, mas deve ter ficado outros arquivos “presos” fazendo com o Postgres ficasse em “meio termo”. A versão do Postgres que utilizamos é a 8.2.4 e neste caso o SO é OpenSuse 11.3(64)
Existe uma rotina de backup que o cliente agendou para as 01h, ela da um stop no banco, aguarda alguns segundos e inicializa ele novamente. Iniciei a analise verificando os logs do backup e percebi que quando ele parou o banco não conseguiu mais subir, consequentemente gerando backups zerados... etc... etc. Então para confirmar que após as 01h o banco não operou mais eu conferi os logs (pg_clog e serverlog). Além disso verifiquei os processos abertos para postmaster, eles não existiam. O problema exatamente não identifiquei, apenas com a informação de erro do postmaster.pid e que o mesmo não conseguia subir, tentei a alternativa de start, foi o que resolveu meu problema (mas não sei o que ocasionou, só sei que funcionou), gostaria muito de saber o que ocasionou, o que aconteceu foi que o postmaster não estava instanciado, mas pode haver vários motivos para isso. O comando /etc/init.d/postgresql stop utiliza como parâmetro –s –m fast, neste caso não espera os clientes desconectarem e desfaz as transações abertas, com isso acredito que ele deveria ter contornado o fato de possivelmente existirem transações abertas. O que vocês acham? >* 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. -- *Eurides V. Baptistella **E-mail:* [email protected] *Fone:* +55 (49) 9125-6572
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
