Re: Banco Corrompeu depois de um desligamento incorreto - RESOLVIDO

View: New views
2 Messages — Rating Filter:   Alert me  

Re: Banco Corrompeu depois de um desligamento incorreto - RESOLVIDO

by Marcelo Costa-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Vou responder às duas mensagens aqui.

On Wed, Nov 4, 2009 at 12:30 PM, Euler Taveira de Oliveira <euler@...> wrote:
Rogério A Bassete escreveu:
> Geralmente pg_resetxlog resolve.
>
Não. Ele *não* quer perder dados e, com certeza, isso *não* resolverá o
problema dele.



-------------------------------------------------------------------------------------------------------------------
Os logs ainda não dizem nada... O que acontece quando você executa o pg_ctl?
Segura o terminal? O processo 'postgres' morre? Caso segure o terminal, você
pode mostrar um strace do processo?
-------------------------------------------------------------------------------------------------------------------

O que o log informava foi o que passei no email anterior e nada mais. O processo não fazia nada e só ficava com aquelas mensagens de debug.

-------------------------------------------------------------------------------------------------------------------
O PostgreSQL avisa nesses casos mas vale a pena verificar se: (i) a porta está
sendo utilizada por outro software (o PostgreSQL avisa nesse caso), (ii) algum
segmento de memória compartilhada ficou para trás ('ipcs -m' pode te dizer
isso), (iii) o arquivo postmaster.pid existe e (iv) as permissões estão
corretas. O modo silent_mode está habilitado no postgresql.conf?

-------------------------------------------------------------------------------------------------------------------

Todas essas opções antes de enviar a mensagem para lista foram verificadas.

Não tive outra escolha a não ser executar o pg_resetxlog[1]

"..pg_resetxlog -- redefine o conteúdo do log de escrita prévia e outras informações de controle de um agrupamento de bancos de dados do PostgreSQL.."

"..O utilitário pg_resetxlog limpa o log de escrita prévia (WAL) e, opcionalmente, redefine algumas outras informações de controle armazenadas no arquivo pg_control. Algumas vezes este utilitário é necessário quando estes arquivos ficam danificados. Deve ser utilizado apenas como último recurso, quando o servidor não iniciar devido a estes arquivos estarem danificados.

Após executar este comando deve ser possível iniciar o servidor, mas deve-se ter em mente que o banco de dados poderá conter dados inconsistentes devido a transações parcialmente efetivadas. Deve ser feita, imediatamente, uma cópia de segurança dos dados, executar o initdb e recarregar os dados. Após a recarga as inconsistências devem ser verificadas e corrigidas conforme necessário..."


O problema de executar esse utilitário é que certamente alguns dados você perderá. Pedi a DEUS e rodei me baseando nos parâmetros e examinando a situação de cada arquivo no diretório data para as chaves -o, -x, -e, -m, -O e -l.

Funcionou e só perderam 4 horas de trabalho. Nada que uma boa chicara de café não ajude a redigitar. :-)

Obrigado a todos e em especial ao Euler e ao Rogério.

[1] http://www.postgresql.org/docs/8.3/static/app-pgresetxlog.html


--
Marcelo Costa
www.marcelocosta.net
-------------------------------------------------
“You can't always get what want”,

Doctor House in apology to Mike Jagger

_______________________________________________
pgbr-geral mailing list
pgbr-geral@...
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Re: Banco Corrompeu depois de um desligamento incorreto - RESOLVIDO

by Euler Taveira de Oliveira-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Marcelo Costa escreveu:
> Não tive outra escolha a não ser executar o pg_resetxlog
>
Acho que você fez a coisa errada mas ...

> Funcionou e só perderam 4 horas de trabalho.
>
Por curiosidade, você está com fsync desabilitado? O seu checkpoint_timeout
está muito alto?

PS> nunca vi o PostgreSQL *não* informar alguma mensagem de erro ao iniciar
quando há algo de errado.


--
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@...
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral