Tom Lane <tgl@xxxxxxxxxxxxx> a écrit :
hjeancha@xxxxxxxxxxx writes:
i use postgresql version7.4.7 on i386-pc-linux-gnu, autovacuum is
configured to run on this database.
Hmm ... in theory autovacuum should have kept you out of trouble,
if it was working properly. Were you keeping an eye on its log
output?
Doing a manual vacuumdb on each database raise an error message saying:
vacuumdb: vacuuming of database "ez_info1" failed: ERREUR: not enough
stack items
What probably happened was that this error blocked autovacuum from
completing an anti-wraparound vacuum :-(
[ checks code... ] This appears to indicate a corrupted btree index.
I don't believe we've ever heard of this error occurring in the field
before, so it might be interesting to inquire into exactly what happened
to the index --- but if you just want to get out of trouble I'd suggest
* VACUUM VERBOSE as superuser.
Watch the output to determine which table it fails on.
* REINDEX that table.
* VACUUM VERBOSE again.
This should solve the problem fairly painlessly as long as the
corrupted index isn't on a system catalog. If it is, see the
man page for REINDEX about how to recover.
I'm not sure if vacuuming will get your data back at this point,
but it's certainly worth a try.
Somewhere in here you should think about moving to a more modern
Postgres release. 8.1 and later wouldn't have let you keep going
to the point of wraparound with a critical problem like this.
regards, tom lane
--
Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
Not really, because i was not in charge of this database until now.
I found that in file /etc/postgresql/postmaster.conf, autovacuum is set to NO.
and stats_start_collector = false , stats_row_level = false in
postgresql.conf file.
I'm not really sure if autovacuum is really running.
I found old log file from autovacuum on the server, but today's log
file is missing.
I will give it a try and let you know, but for now, other databases
with age(datfrozenxid) with negative values seems to be ok.
From what you are saying, i understand that it's urgent to
1) VACUUM VERBOSE and REINDEX
2) if it's not OK make an initdb and recreate databases if possible in
postgresql minimum release 8.1.
I'll try to convince the application administrator that this a
priority to upgrade recent version of postgresql.
Thanks a lot