Em 02-08-2012 13:53, Eurides Baptistella escreveu: > Então, não deveria mesmo existir, mas deve ter ficado outros arquivos > “presos” fazendo com o Postgres ficasse em “meio termo”.
Não fale bobagem. Não existe meio termo. Ou o PostgreSQL parou limpo ou parou forçado. O tempo para parar limpo é que pode ser maior do que você espera. Ao parar forçado, o tempo de inicialização é que é maior para recuperar o que estava ocorrendo antes da parada. > A versão do Postgres que utilizamos é a 8.2.4 e neste caso o SO é > OpenSuse 11.3(64) Sua versão do PostgreSQL está obsoleta e não possui mais suporte e atualizações. Aliás, a última atualização da versão 8.2 foi 8.2.23!!! A versão 8.2.4 é EXTREMAMENTE (gritando mesmo) bugada. Se você não pode fugir da versão 8.2, use 8.2.23. É mandatório. O correto mesmo seria você usar uma versão suportada, 8.3 ou superior, sendo que 8.3 este ano morrerá. > 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. Pra quê? > 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 Não é necessário parar o PostgreSQL para fazer backup. Leia mais sobre PITR. A versão 8.2 já tinha suporte a isso. > operou mais eu conferi os logs (pg_clog e serverlog). Além disso > verifiquei os processos abertos para postmaster, eles não existiam. Como fez isso? ps? > > 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. Provavelmente outros processos do PostgreSQL (veja abaixo). > 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. Sim, contorna, mas o rollback tem de ocorrer antes do processo sair. Se uma transação longa estiver em andamento o modo fast vai esperar que toda essa transação seja desfeita. > O que vocês acham? 1) Não pare o banco para fazer backup. Dificilmente é necessário parar o PostgreSQL, por qualquer motivo que seja. Normalmente se faz isso apenas para uma manutenção no S.O. ou hardware. 2) Atualize sua versão do PostgreSQL conforme eu disse lá em cima. É mandatório. []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
