PITR for postgresql-7.3

Started by Mary Ellen Fitzpatrickover 18 years ago5 messagesgeneral
Jump to latest

Hi,

We are running postgresql-7.3.3 and we had a hardware controller and
disk failure on the system. And of course the database does not appear
to be backup anywhere.

I was reading about PITR and was wondering if that is applicable to my
version. We do have pg_xlog files and I am wondering if there is anyway
to recover the data.

The error we get when trying to access a very important table is

"Invalid page header in block 51 of vuser"

Any help would be appreciated.
(upgrades and backups lessons learned)

--
Thanks
Mary Ellen

#2Merlin Moncure
mmoncure@gmail.com
In reply to: Mary Ellen Fitzpatrick (#1)
Re: PITR for postgresql-7.3

On 8/10/07, Mary Ellen Fitzpatrick <mfitzpat@bu.edu> wrote:

Hi,

We are running postgresql-7.3.3 and we had a hardware controller and
disk failure on the system. And of course the database does not appear
to be backup anywhere.

I was reading about PITR and was wondering if that is applicable to my
version. We do have pg_xlog files and I am wondering if there is anyway
to recover the data.

The error we get when trying to access a very important table is

"Invalid page header in block 51 of vuser"

Any help would be appreciated.
(upgrades and backups lessons learned)

PITR feature was introduced in PostgreSQL 8.0 No help there. You are
looking at data loss unfortunately. How complete data loss depends on
how relatively intact the structures are and how much time and effort
you are willing to spend fixing problems causing errors like the
above.

* did you recover part or all of the database volume?
* were you running with fsync off or on?

merlin

#3Merlin Moncure
mmoncure@gmail.com
In reply to: Mary Ellen Fitzpatrick (#1)
Re: PITR for postgresql-7.3

On 8/10/07, Mary Ellen Fitzpatrick <mfitzpat@bu.edu> wrote:

Merlin,

I am willing to spend the time, as it is an important table. I am a
newbie at this and it has fallen into my lap.
From what the user tells me, it is only the one table.
Not sure if fsync was running, how can I tell?

check postgresql.conf in the database folder.

merlin

In reply to: Mary Ellen Fitzpatrick (#1)
Re: PITR for postgresql-7.3

I am trying to run pg_dump on the database with the corrupt table, and
try to restore the database. I also tried to vacuumdb the database and
get the same error.
I get the following error.

pg_dump <database>
pg_dump: query to obtain list of data types failed: PANIC: read of clog
file 100, offset 81920 failed: Success
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

Do I have any options for getting around this error?

Thanks
Mary Ellen

Scott Marlowe wrote:

On 8/10/07, Mary Ellen Fitzpatrick <mfitzpat@bu.edu> wrote:

Hi,

We are running postgresql-7.3.3 and we had a hardware controller and
disk failure on the system. And of course the database does not appear
to be backup anywhere.

Ouch, I feel your pain.

I was reading about PITR and was wondering if that is applicable to my
version. We do have pg_xlog files and I am wondering if there is anyway
to recover the data.

Sadly, no. First off you need a backup of the database from some
point in the past, then you need to ship it's wal logs off to some
other machine for storage. Then you need to be running a version of
pgsql that supports replaying those logs, which 7.3 definitely
doesn't.

The error we get when trying to access a very important table is

"Invalid page header in block 51 of vuser"

Sounds like a bad page. Is this access going through an index? If
so, then you might be able to access parts of the table with a where
clause and get most of the database out one select statement at a
time.

Any help would be appreciated.
(upgrades and backups lessons learned)

Just a quick point on the upgrades, there's also updates, which are
even more important. 7.3 is up to 7.3.19 now, and I'm sure there are
some very nasty bugs in a version as old as 7.3.3

It might be worth backing up the db from the file system level and
trying to upgrade your install to 7.3.19 and seeing if that fixes the
problems. Probably won't, but worth a try.

also, I don't recall if 7.3 had the zero damaged pages option, but if
it does, you can use that to get the db more or less up and running
again.

Good luck, and report back on your progress to see if there's anything
else we can do to help.

--
Thanks
Mary Ellen

#5Tom Lane
tgl@sss.pgh.pa.us
In reply to: Mary Ellen Fitzpatrick (#4)
Re: PITR for postgresql-7.3

Mary Ellen Fitzpatrick <mfitzpat@bu.edu> writes:

I am trying to run pg_dump on the database with the corrupt table, and
try to restore the database. I also tried to vacuumdb the database and
get the same error.
I get the following error.

pg_dump <database>
pg_dump: query to obtain list of data types failed: PANIC: read of clog
file 100, offset 81920 failed: Success
server closed the connection unexpectedly

That looks pretty bad --- it implies that there's corruption in the
pg_type system catalog, not only in your user table. Which in turn
suggests that it's not a localized problem but might affect many
different data blocks. I'm afraid that database is probably toast :-(.
An expert might be able to salvage something from it, but only with
great effort, and there'd be no guarantees of getting complete or
consistent data.

regards, tom lane