Re: after using pg_resetxlog, db lost - Mailing list pgsql-performance

From Tom Lane
Subject Re: after using pg_resetxlog, db lost
Date
Msg-id 15230.1088094821@sss.pgh.pa.us
Whole thread Raw
In response to Re: after using pg_resetxlog, db lost  ("Shea,Dan [CIS]" <Dan.Shea@ec.gc.ca>)
List pgsql-performance
"Shea,Dan [CIS]" <Dan.Shea@ec.gc.ca> writes:
> I determined the largest was 12,293,162 and set it to
> pg_resetxlog -x 15000000 /var/lib/pgsql/data

Okay, but it looks like you will also need to adjust pg_clog to cover
that transaction ID range.  (I had thought pg_resetxlog would handle
this for you, but it looks like not.)

> Jun 24 15:02:05 murphy postgres[28061]: [11-1] PANIC:  could not access status of transaction 15000030
> Jun 24 15:02:05 murphy postgres[28061]: [11-2] DETAIL:  could not read from file "/var/lib/pgsql/data/pg_clog/000E"
atoffset 73728: Success 

You need to append zeroes (8K at a time) to
/var/lib/pgsql/data/pg_clog/000E until it's longer than 73728 bytes.
I'd use something like
    dd bs=8k count=1 </dev/zero >>/var/lib/pgsql/data/pg_clog/000E
assuming that your system has /dev/zero.

            regards, tom lane

pgsql-performance by date:

Previous
From: "Shea,Dan [CIS]"
Date:
Subject: Re: after using pg_resetxlog, db lost
Next
From: "Shea,Dan [CIS]"
Date:
Subject: Re: after using pg_resetxlog, db lost