AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 713700
Accepted
muffel
muffel
Asked: 2015-08-13 10:35:28 +0800 CST2015-08-13 10:35:28 +0800 CST 2015-08-13 10:35:28 +0800 CST

postgresql: mensagem 'cabeçalho de página inválido' mesmo após soltar e recriar

  • 772

Meu servidor Ubuntu 14.04 LTS executando o postgresql 8.4.11 travou e, após uma reinicialização, o servidor de aplicativos executando uma consulta no postgresql relatou o seguinte erro

ERROR: invalid page header in block 40 of relation base/18038/22194

Pesquisei no Google, tentei criar um despejo e usei a mensagem de erro resultante para identificar uma tabela quebrada. eu então executei

SET zero_damaged_pages = on;
VACUUM FULL damaged_table;
-- vacuum didn't report any errors here
REINDEX TABLE damaged_table;

outros mencionaram reindexdb, então eu corri

$ reindexdb -s mydb

também, mas o problema continuou o mesmo.

Finalmente - obtive um backup funcional do banco de dados - soltei e recriei todo o banco de dados

DROP DATABASE mydb;
CREATE DATABASE mydb;

e restaurou o backup:

cat mydump| sudo -u postgres pgsql mydb

Mas mesmo agora o problema continua o mesmo. Não sei muito sobre postgresql, mas como esse erro pode sobreviver a uma recriação do banco de dados? Infelizmente, preciso fazer o banco de dados funcionar na mesma máquina novamente.

Há mais alguma coisa que eu possa tentar para que o banco de dados funcione novamente?

linux
  • 2 2 respostas
  • 2658 Views

2 respostas

  • Voted
  1. Best Answer
    Kassandry
    2015-08-13T10:49:33+08:002015-08-13T10:49:33+08:00

    Parece que você tem algum tipo de corrupção em seu sistema de arquivos ou disco.

    Eu recomendo procurar aqui: corrupção do postgresql

    Depois disso, eu procuraria dmesgqualquer /var/log/messageserro de hardware que você pudesse ver.

    Se você obtiver um despejo de trabalho, eu copiaria o diretório de dados atual de /var/lib/postgresql/8.4/main, executaria pg_createcluster 8.4 mainem um novo diretório e tentaria restaurar lá e ver se isso ajuda a corrigir quaisquer problemas remanescentes.

    Se você ainda estiver tendo problemas depois disso, entrar #postgresqlno Freenode IRC, ou [email protected]seria meu próximo passo, se eu tivesse que colocar isso em funcionamento o mais rápido possível.

    Espero que ajude. Boa sorte. =)

    • 3
  2. Rajesh Vallarapu
    2019-07-12T04:53:59+08:002019-07-12T04:53:59+08:00

    Se você tiver um escravo, defina hot_standby_feedback- 'on'o, se ainda não o tiver. Faça pg_dump e escreva-o em /dev/null para não consumir espaço.

    nohup pg_dump db_name -v -Fc -f /dev/null & 
    

    Se o despejo for bem-sucedido, seu escravo está bem. Faça um failover. Não haverá perda de dados.

    Outra maneira de validar seu escravo é fazer:

    explain select count(*) from table_name;
    

    Se for bem-sucedido e estiver usando uma varredura de sequência, seu escravo está bom. Você pode não ter que considerar esta opção se estiver usando a varredura de índice.

    Observação: isso funciona apenas se seu mestre for afetado por corrupção no nível de armazenamento.

    Aconteceu que enfrentei o mesmo problema hoje e consegui corrigi-lo.

    • 2

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve