2013/11/11 Deliane Andrade <[email protected]>

> Bom dia.
> Estou tentando acessar meu banco via psql e está retornando o seguinte
> ERRO:
>
> postgres@condor:~$ psql meu_banco
> psql: PÃNICO:  could not open critical system index 2662
>
> O arquivo de log é este:
>
>  BRT>PÃNICO:  could not open critical system index 2662
> <%%2013-11-11 09:42:21.991 BRT>LOG:  processo servidor (PID 3050) foi
> terminado pelo sinal  6: Aborted
> <%%2013-11-11 09:42:21.991 BRT>LOG:  terminando quaisquer outros processos
> servidor ativos
> <%%2013-11-11 09:42:21.992 BRT>LOG:  todos os processos servidor foram
> terminados; reinicializando
> <%%2013-11-11 09:42:22.063 BRT>LOG:  sistema de banco de dados foi
> interrompido; última execução em 2013-11-11 09:42:13 BRT
> <%%2013-11-11 09:42:22.063 BRT>LOG:  sistema de banco de dados não foi
> desligado corretamente; recuperação automática está em andamento
> <%%2013-11-11 09:42:22.071 BRT>LOG:  registro com tamanho zero em
> 1713/892DD040
> <%%2013-11-11 09:42:22.071 BRT>LOG:  redo não é requerido
>
>
> Resumindo, não consigo mais acessar a minha base.
> Alguém teria alguma idéia do que possa estar acontecendo?
> Será que tem alguma forma de recuperar isto?
>
>
Você está sofrendo de sérios problemas de corrupção em seu banco de dados,
foi você que teve um problema semelhante semana passada certo?

Bom, a primeira coisa é verificar seu hardware, especificamente memória e
HD. Se encontrar algum problema, substitua o componente.

Verifique também as suas configurações como fsync e full_page_writer, devem
estar on (não lembro se isso foi feito na outra thread).

A segunda coisa é restaurar seu backup. Por favor, me diga que tem backup...

Se quiser tentar salvar esse banco, eu tentaria o seguinte:

1. Subir o PostgreSQL e tentar conectar com o psql (não use pgAdmin ou
semelhante, estes vão tentar carregar tabelas e informações e vão se
deparar com o erro acima);
2. Reindexar as tabelas de sistema:

    REINDEX SYSTEM seu_banco;

Se não conseguir conectar pelo pgAdmin, terás que iniciar o PostgreSQL em
modo single-user (lembre-se de estar conectada no SO com o mesmo usuário do
serviço, geralmente `postgres`) [1] e executar o mesmo comando acima.

Após fazer isso, tente subir novamente o banco e veja se consegue conectar.
Se conectou, vamos continuar:

3. Gere um dump de *todas* suas bases (pode usar pg_dumpall ou pg_dump de
cada um e `pg_dumpall -g` para recuperar os objetos globais);
4. Remova seu diretório de dados (na verdade mova para um backup, se tiver
espaço);
5. Crie um novo cluster com o initdb (ou pg_createcluster se tiver usando o
PostgreSQL Debian-like);
6. Restaure o dump criado.

OBS1: Não deixe ninguém conectar no banco durante a execução desses
procedimentos.
OBS2: Mesmo as etapas 1-2 resolvendo o problema, não há como garantir que
não tem mais nada corrompido (e escondido), então SIM as etapas 3-6 são
obrigatórias.

[1]
http://www.postgresql.org/docs/current/interactive/app-postgres.html#AEN90396


Att,
> Deliane Andrade
>
>
Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a