Thread: vacuuming template0 gave ERROR
Guys,
Got the following ERROR when i was vacuuming the template0 database.
postgresql server version is 7.4.5 and stats info in postgresql.conf is
# - Query/Index Statistics Collector -
stats_start_collector = true
stats_command_string = true
stats_block_level = true
stats_row_level = tue
#stats_reset_on_server_start = true
============================
step 1
update pg_database set datallowconn=TRUE where datname='template0';
step 2
vacuum analyze verbose
......
.....
INFO: vacuuming "pg_catalog.pg_statistic"
ERROR: could not access status of transaction 1107341112
DETAIL: could not open file "/home/postgres/data/pg_clog/0420": No such file or directory
ERROR: could not access status of transaction 1107341112
DETAIL: could not open file "/home/postgres/data/pg_clog/0420": No such file or directory
step 3
postgres@test1:~> /usr/local/pgsql/bin/psql ecommerce -c 'SELECT datname, age(datfrozenxid) FROM pg_database';
datname | age
-----------+------------
template0 | 1112108248
database1 | 1074511487
template1 | 1073987669
(3 rows)
datname | age
-----------+------------
template0 | 1112108248
database1 | 1074511487
template1 | 1073987669
(3 rows)
Files in the pg_clog are:-
postgres@test1:~/data/pg_clog> ls -lart
total 417
-rw------- 1 postgres postgres 262144 2005-12-26 02:09 0443
drwx------ 2 postgres postgres 96 2005-12-26 02:17 ./
drwx------ 6 postgres postgres 640 2005-12-26 03:22 ../
-rw------- 1 postgres postgres 163840 2005-12-26 03:23 0444
total 417
-rw------- 1 postgres postgres 262144 2005-12-26 02:09 0443
drwx------ 2 postgres postgres 96 2005-12-26 02:17 ./
drwx------ 6 postgres postgres 640 2005-12-26 03:22 ../
-rw------- 1 postgres postgres 163840 2005-12-26 03:23 0444
Problem: template0 is not getting vacuumed due to the above ERROR.. please let me know whats the solution.
--
Best,
Gourish Singbal
--
Best,
Gourish Singbal
Gourish Singbal <gourish@gmail.com> writes: > Got the following ERROR when i was vacuuming the template0 database. Why were you doing that in the first place? template0 shouldn't ever be touched. > postgresql server version is 7.4.5 The underlying cause is likely related to this 7.4.6 bug fix: 2004-10-13 18:22 tgl * contrib/pgstattuple/pgstattuple.c, src/backend/access/heap/heapam.c, src/backend/utils/adt/ri_triggers.c (REL7_4_STABLE): Repair possible failure to update hint bits back to disk, per http://archives.postgresql.org/pgsql-hackers/2004-10/msg00464.php. I plan a more permanent fix in HEAD, but for the back branches it seems best to just touch the places that actually have a problem. > INFO: vacuuming "pg_catalog.pg_statistic" > ERROR: could not access status of transaction 1107341112 > DETAIL: could not open file "/home/postgres/data/pg_clog/0420": No such > file or directory Fortunately for you, pg_statistic doesn't contain any irreplaceable data. So you could get out of this via TRUNCATE pg_statistic; VACUUM ANALYZE; -- rebuild contents of pg_statistic VACUUM FREEZE; -- make sure template0 needs no further vacuuming Then reset template0's datallowconn to false, and get rid of that code to override it. And then update to a more recent release ;-) (I don't recall exactly what rules 7.4 uses, but likely you'll find that you need to run a standalone backend with -O switch to perform TRUNCATE on a system catalog.) regards, tom lane
Tom,
I got the followign Erorr when i tried to trucate the table.
/usr/local/pgsql/bin/postgres -D data -O -o standalone_log template0
2005-12-26 22:48:12 ERROR: expected one dependency record for TOAST table, found 0
2005-12-26 22:48:31 ERROR: could not access status of transaction 1107341112
DETAIL: could not open file "/home/postgres/data/pg_clog/0420": No such file or directory
2005-12-26 22:48:41 LOG: shutting down
2005-12-26 22:48:41 LOG: database system is shut down
please suggest ?.
2005-12-26 22:48:31 ERROR: could not access status of transaction 1107341112
DETAIL: could not open file "/home/postgres/data/pg_clog/0420": No such file or directory
2005-12-26 22:48:41 LOG: shutting down
2005-12-26 22:48:41 LOG: database system is shut down
please suggest ?.
On 12/26/05, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Gourish Singbal <gourish@gmail.com> writes:
> Got the following ERROR when i was vacuuming the template0 database.
Why were you doing that in the first place? template0 shouldn't ever
be touched.
> postgresql server version is 7.4.5
The underlying cause is likely related to this 7.4.6 bug fix:
2004-10-13 18:22 tgl
* contrib/pgstattuple/pgstattuple.c,
src/backend/access/heap/heapam.c,
src/backend/utils/adt/ri_triggers.c (REL7_4_STABLE): Repair
possible failure to update hint bits back to disk, per
http://archives.postgresql.org/pgsql-hackers/2004-10/msg00464.php.
I plan a more permanent fix in HEAD, but for the back branches it
seems best to just touch the places that actually have a problem.
> INFO: vacuuming "pg_catalog.pg_statistic"
> ERROR: could not access status of transaction 1107341112
> DETAIL: could not open file "/home/postgres/data/pg_clog/0420": No such
> file or directory
Fortunately for you, pg_statistic doesn't contain any irreplaceable
data. So you could get out of this via
TRUNCATE pg_statistic;
VACUUM ANALYZE; -- rebuild contents of pg_statistic
VACUUM FREEZE; -- make sure template0 needs no further vacuuming
Then reset template0's datallowconn to false, and get rid of that code
to override it. And then update to a more recent release ;-)
(I don't recall exactly what rules 7.4 uses, but likely you'll find that
you need to run a standalone backend with -O switch to perform
TRUNCATE on a system catalog.)
regards, tom lane
--
Best,
Gourish Singbal
Gourish Singbal <gourish@gmail.com> writes: > I got the followign Erorr when i tried to trucate the table. > /usr/local/pgsql/bin/postgres -D data -O -o standalone_log template0 > 2005-12-26 22:48:12 ERROR: expected one dependency record for TOAST table, > found 0 [ raised eyebrow... ] Probably time to pg_dump, initdb, reload. You seem to be suffering multiple problems. If you aren't aware of any catastrophe that would explain all these holes in your DB, then it's also time to start running some hardware diagnostics ... regards, tom lane
Thanks a million tom,
But guess what we think alike, have taken the dump and am in to process of restoring it right now.
thanks for the help.
On 12/27/05, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Gourish Singbal <gourish@gmail.com> writes:
> I got the followign Erorr when i tried to trucate the table.
> /usr/local/pgsql/bin/postgres -D data -O -o standalone_log template0
> 2005-12-26 22:48:12 ERROR: expected one dependency record for TOAST table,
> found 0
[ raised eyebrow... ] Probably time to pg_dump, initdb, reload. You
seem to be suffering multiple problems. If you aren't aware of any
catastrophe that would explain all these holes in your DB, then it's
also time to start running some hardware diagnostics ...
regards, tom lane
--
Best,
Gourish Singbal