PostgreSql não iniciando após crash do sistema

Posted . Visible to the public.

Hoje minha estação de trabalho reiniciou de repente, e o PostgreSql parou de funcionar. O comando '/etc/init.d/postgresql start' não funcionava, só aparecia a mensagem 'The PostgreSQL server failed to start. Please check the log output.'

Observando os logs, tinha um log de PANIC com a descrição 'postgresql WAL contains references to invalid pages'. Esta mensagem indica que o sistema foi desligado inesperadamente, e que o banco de dados estava corrompido.

A correção é simples, mas pode perder alguns dados. Como é uma base de testes, isso não foi problema. Primeiramente, mude para o usuário postgres (sudo su && su - posgres) e execute:
/usr/lib/postgresql/9.1/bin/pg_resetxlog -f /var/lib/postgresql/9.1/main/
Deve aparecer a mensagem 'Transaction log reset'. Feito isto, o postgresql deve reiniciar normalmente.

Daniel Lobo
Posted by Daniel Lobo to ZeroGlosa (2013-04-24 15:11)