Unix Technical Forum

Problems with missing OIDs

This is a discussion on Problems with missing OIDs within the pgsql Admins forums, part of the PostgreSQL category; --> Hi, after a disk-crash some weeks ago and a successful recovery, I now find some strange issues in postgres. ...


Go Back   Unix Technical Forum > Database Server Software > PostgreSQL > pgsql Admins

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-10-2008, 09:17 AM
Alexander Lohse
 
Posts: n/a
Default Problems with missing OIDs

Hi,

after a disk-crash some weeks ago and a successful recovery, I now
find some strange issues in postgres.
I am not sure they are related to the crash, but I figure chances
are ...

One of them is: When trying to vacuum one database I get the following
message:
"ERROR: could not open relation with OID 36893600"
After browsing the archives I found similar threads and possible
recovery methods.

So, I already reindexed and vacuumed all pg_catalog, with no effect.

Now I searched and found a row in pg_index with

indexrelid => 36893600

Is it save to just drop this row? Or how do I find out which index is
affected?

Any help is very much apprechiated as this seems to affect our backup-
dumping as well!

Best regards,

Alex
__________________________________________________ ____________

Alexander Lohse • Entwicklungsleitung & Projektmanagement
Tel +49 38374 752 11 • Fax +49 38374 752 23
http://www.humantouch.de

Human Touch Medienproduktion GmbH
Am See 1 • 17440 Klein Jasedow • Deutschland

Geschäftsführung:
Lara Mallien, Nele Hybsier, Alexander Lohse, Johannes Heimrath (Senior)
Handelsregister Stralsund • HRB 4192 • USt-IdNr. DE128367684



---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-10-2008, 09:17 AM
Tom Lane
 
Posts: n/a
Default Re: Problems with missing OIDs

Alexander Lohse <al@humantouch.de> writes:
> after a disk-crash some weeks ago and a successful recovery, I now
> find some strange issues in postgres.
> I am not sure they are related to the crash, but I figure chances
> are ...


That really shouldn't have happened in the first place. Are you running
an up-to-date Postgres version? Are you sure your disk drives don't lie
about write completion?

> One of them is: When trying to vacuum one database I get the following
> message:
> "ERROR: could not open relation with OID 36893600"


> Now I searched and found a row in pg_index with
> indexrelid => 36893600
> Is it save to just drop this row? Or how do I find out which index is
> affected?


Well, if the pg_class row with that OID is gone, then there's no direct
way to know. But you should be able to look at the row referenced by
indrelid, to find out which table it was an index *of*. Hopefully you
know your schema well enough to figure out which of its indexes is
missing.

I would recommend a dump/initdb/reload cycle to try to detect and clean
up any other corruption. Loss of just one pg_class row doesn't seem
like a very probable failure, so I'm afraid you may have more problems.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-10-2008, 09:17 AM
Alexander Lohse
 
Posts: n/a
Default Re: Problems with missing OIDs

Hi Tom,

> Alexander Lohse <al@humantouch.de> writes:
>> after a disk-crash some weeks ago and a successful recovery, I now
>> find some strange issues in postgres.
>> I am not sure they are related to the crash, but I figure chances
>> are ...

>
> That really shouldn't have happened in the first place. Are you
> running
> an up-to-date Postgres version? Are you sure your disk drives don't
> lie
> about write completion?


the server is running PostgreSQL 7.4. The disks where replaced by our
hosting partners, so I do not know anything about their internal state.

What else could produce such a mess?

>> One of them is: When trying to vacuum one database I get the
>> following
>> message:
>> "ERROR: could not open relation with OID 36893600"

>
>> Now I searched and found a row in pg_index with
>> indexrelid => 36893600
>> Is it save to just drop this row? Or how do I find out which index is
>> affected?

>
> Well, if the pg_class row with that OID is gone, then there's no
> direct
> way to know. But you should be able to look at the row referenced by
> indrelid, to find out which table it was an index *of*. Hopefully you
> know your schema well enough to figure out which of its indexes is
> missing.


Yes, that was easy to find.

The index for a primary key contstraint on that table is missing.

I also cannot drop and recreate that constraint!

Can I just go ahead and drop the corresponding rows from pg_contraint
and pg_index?

> I would recommend a dump/initdb/reload cycle to try to detect and
> clean
> up any other corruption. Loss of just one pg_class row doesn't seem
> like a very probable failure, so I'm afraid you may have more
> problems.


Currently I cannot create any dump because postgres just stops at the
error. ;-(

So, our backup scripts are all broke ... :-(

Thank you,

Alex
__________________________________________________ ____________

Alexander Lohse • Entwicklungsleitung & Projektmanagement
Tel +49 38374 752 11 • Fax +49 38374 752 23
http://www.humantouch.de

Human Touch Medienproduktion GmbH
Am See 1 • 17440 Klein Jasedow • Deutschland

Geschäftsführung:
Lara Mallien, Nele Hybsier, Alexander Lohse, Johannes Heimrath (Senior)
Handelsregister Stralsund • HRB 4192 • USt-IdNr. DE128367684



---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 09:03 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com