Vou responder às duas mensagens aqui.

On Wed, Nov 4, 2009 at 12:30 PM, Euler Taveira de Oliveira <
[email protected]> 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, -Oe
-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
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a