Thread: Error during analyze after upgrade from 10.10 -> 11.4

Error during analyze after upgrade from 10.10 -> 11.4

From
Ben Snaidero
Date:
Hi,

I get the following error after upgrading from Postgres 10.10 -> Postgres 11.4

After upgrade completes when running "vacuumdb -p 5432 -U postgres -a -Z --analyze-in-stages" I get the following error:
 vacuumdb: processing database "#DBNAME#": Generating minimal optimizer statistics (1 target)
 vacuumdb: vacuuming of database "#DBNAME#" failed: ERROR:  could not access status of transaction 6095
   DETAIL:  Could not open file "pg_xact/0000": No such file or directory.


After logging into the database using psql and running "VACUUM FULL #table#" for each table I can see it's an issue with pg_statistic

Running VACUUM FULL on table pg_statistic  
    psql.exe : ERROR:  could not access status of transaction 6095
    At line:23 char:9
   +         psql.exe -d $db -c "vacuum full $table"
   +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (ERROR:  could n...ransaction 6095:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

 
DETAIL:  Could not open file "pg_xact/0000": No such file or directory.


Any ideas as to how this could have happened or how I can fix this issue?  I had the issue once on another server and running VACUUM FULL on entire database fixed the error.

Note: I ran "VACUUM FREEZE ANALYZE" before the upgrade on every database and there were no errors.


Ben Snaidero
Geotab
Senior Database Specialist
Direct+1 (289) 230-7749
Toll-free+1 (877) 436-8221
Visitwww.geotab.com
Twitter|Facebook|YouTube|LinkedIn

Re: Error during analyze after upgrade from 10.10 -> 11.4

From
Tom Lane
Date:
Ben Snaidero <bensnaidero@geotab.com> writes:
> After upgrade completes when running "vacuumdb -p 5432 -U postgres -a -Z
> --analyze-in-stages" I get the following error:

> * vacuumdb: processing database "#DBNAME#": Generating minimal optimizer
> statistics (1 target) vacuumdb: vacuuming of database "#DBNAME#" failed:
> ERROR:  could not access status of transaction 6095   DETAIL:  Could not
> open file "pg_xact/0000": No such file or directory.*

> After logging into the database using psql and running "VACUUM FULL
> #table#" for each table I can see it's an issue with pg_statistic

If it's only pg_statistic then you're in luck, because all the data
in that is rebuildable.  You can try "delete from pg_statistic",
and then "vacuum full pg_statistic".  I'm not sure that will work
though, it may hit the same problem.  If so, you need a bigger
hammer: "TRUNCATE pg_statistic" will fix it, but you'll need to
stop the server and restart with allow_system_table_mods enabled
to be allowed to do that.  (Turn allow_system_table_mods back
off afterwards!)

Once you've got an empty pg_statistic, run "ANALYZE;" (as superuser)
to rebuild all the stats.

Hard to tell what the underlying issue is here --- perhaps pg_upgrade
messed up, but it would take some detailed investigation to find out.

            regards, tom lane