Skip site navigation (1) Skip section navigation (2)

Peripheral Links

Header And Logo

PostgreSQL
| The world's most advanced open source database.

Site Navigation

Search for
  Advanced Search

Re: How to reindex when unable to open relation?



"Shoaib Mir" <shoaibmir(at)gmail(dot)com> writes:
> On Tue, Feb 26, 2008 at 5:13 PM, Darren Reed <darrenr+postgres(at)fastmail(dot)net>
> wrote:
>> pg_dump: failed sanity check, parent table OID 16401 of pg_rewrite entry
>> OID 16403 not found
>> 
>> Is this recoverable without using a backup?

> Looks like to me corrupted system catalog!

Yah.

> I guess when you dropped the table it didn't delete the record from
> pg_rewrite was not deleted when the parent table was dropped. So you can try
> doing something:
> delete from pg_rewrite where oid = 16403;

That's not gonna help for these:

>> ERROR:  could not open relation with OID 16399
>> ERROR:  index "pg_attrdef_adrelid_adnum_index" contains unexpected zero 
>> page at block 1
>> ERROR:  could not open relation with OID 16389
>> ERROR:  could not open relation with OID 16393

I'm afraid Darren's DB has taken multiple mortal hits --- the evidence
here suggests that at least one pg_class page and at least one
pg_attrdef_adrelid_adnum_index page have been silently zeroed out by
*something*.  The index could be reconstituted by REINDEX, if its
underlying table is undamaged; but no amount of reindexing will bring
back missing table rows :-(

There's no info here to suggest exactly what went wrong; Darren, do you
want to fess up to any hardware problems, tripped-over power cords, or
such?  What PG version is this anyway?

			regards, tom lane



Home | Main Index | Thread Index

Privacy Policy | PostgreSQL Archives hosted by Command Prompt, Inc. | Designed by tinysofa
Copyright © 1996 – 2008 PostgreSQL Global Development Group