Обсуждение: Error Migrating From 7.4 to 8.2.5
I am running PGSQL 7.4 on a Solaris 9 system. I am trying to upgrade to 8.2.5. Both 7.4 and 8.2.5 are on the same server. When I try to use 8.2.5 pg_dumpall to dump the 7.4 databse I receive the following error: pg_dumpall: query failed: ERROR: xlog flush request 58/A0AFB0C0 is not satisfied --- flushed only to 5/B2004628 CONTEXT: writing block 15 of relation 21182403/16408 pg_dumpall: query was: SELECT usename as rolname, usesuper as rolsuper, true as rolinherit, usesuper as rolcreaterole, usecreatedb as rolcreatedb, usecatupd as rolcatupdate, true as rolcanlogin, -1 as rolconnlimit, passwd as rolpassword, valuntil as rolvaliduntil, null as rolcomment FROM pg_shadow UNION ALL SELECT groname as rolname, false as rolsuper, true as rolinherit, false as rolcreaterole, false as rolcreatedb, false as rolcatupdate, false as rolcanlogin, -1 as rolconnlimit, null::text as rolpassword, null::abstime as rolvaliduntil, null as rolcomment FROM pg_group WHERE NOT EXISTS (SELECT 1 FROM pg_shadow WHERE usename = groname) ORDER BY 1 I shut down the 7.4 database and ran pg_resetxlog. This is just a test so I am not worried about losing data. Restarted the database and tried pg_dumpall again. I still received the same error but on a different block. How do I fix this problem? Thank you.
eromain@patriot.net writes:
> I am running PGSQL 7.4 on a Solaris 9 system.
7.4.what exactly?
> I am trying to upgrade to
> 8.2.5. Both 7.4 and 8.2.5 are on the same server. When I try to use 8.2.5
> pg_dumpall to dump the 7.4 databse I receive the following error:
> pg_dumpall: query failed: ERROR: xlog flush request 58/A0AFB0C0 is not
> satisfied --- flushed only to 5/B2004628
> CONTEXT: writing block 15 of relation 21182403/16408
Hmmm ... in 7.4 16408 is pg_statistic, which fortunately for you is all
easily-regenerated data. I'd try "DELETE FROM pg_statistic".
If that doesn't complain, the normal process would be to VACUUM pg_statistic
and then re-ANALYZE the database, but since you're just trying to dump
data you might be able to skip that bit.
> I shut down the 7.4 database and ran pg_resetxlog. This is just a test so
> I am not worried about losing data.
Good, because that wasn't a very bright move --- I can't imagine that
the shutdown checkpoint would have worked, and pg_resetxlog after an
unclean shutdown is a recipe for losing data.
regards, tom lane
eromain@patriot.net writes:
>> Hmmm ... in 7.4 16408 is pg_statistic, which fortunately for you is all
>> easily-regenerated data. I'd try "DELETE FROM pg_statistic".
> Deleting from pg_statistic produced error: xlog flush request 58/A0AFB340
> is not satisfied --- flushed only to 5/B2004628
> CONTEXT: writing block 3 of relation 21182403/16408
Ugh ... it's troubling that you have this on several different pages;
that makes it more probable that the corruption extends beyond
pg_statistic. Anyway, the next thing to try is manually truncating the
file to zero length (while the postmaster is stopped). Check the
database OID, then it should be $PGDATA/base/DBOID/16408.
> I am running just 7.4. Thanks!!
Yikes. The current release in that branch is 7.4.18, and practically
every one of those 18 updates fixed significant bugs.
regards, tom lane