Corrompimento

<< Click to Display Table of Contents >>

Navigation:  PostgreSQL > Manutenção >

Corrompimento

Previous pageReturn to chapter overviewNext page

erro de relid (perdi a msg certinha mas depois eu atualizo :D)

 

Se der erro pra fazer backup numa tabela q na verdade não existe:

delete from pg_class c where c.relname like 'pg_temp%';

select * from pg_tables p where tablename like 'pg_temp%';

 

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

 

Corrompimento de base de dados

Mensagem: postgres catalog is missing attribute for relid

Descobrindo registros na tabela do sistema pg_class com vínculo errado

 

select

 c.oid,

 c.relname,

 c.relnatts

from pg_class c

    left join pg_attribute a

      on  a.attrelid = c.oid

      and a.attnum > 0

group by

 c.oid,

 c.relname,

 c.relnatts

having count(*) != c.relnatts;

 

Solução: Excluir registros retornados no sql acima

delete from pg_class c

where oid in (10651743, 10651740, 10651742);