Skip site navigation (1) Skip section navigation (2)

Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Steven Flatt" <steven(dot)flatt(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org, Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Subject: Re: BUG #3898: Postgres autovacuum not respecting pg_autovacuum.enabled = false
Date: 2008-01-24 00:54:21
Message-ID: 28575.1201136061@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugs
"Steven Flatt" <steven(dot)flatt(at)gmail(dot)com> writes:
> I noticed that the Postgres autovacuum process was vacuuming some tables
> that had enabled = false in pg_autovacuum.

I think what is happening is that because you set
pg_autovacuum.freeze_max_age to zero, the thing always thinks that it's
time to force an anti-wraparound vacuum.  IOW a nondefault freeze age is
still applied whether or not enabled is true.  I'm not quite sure if
that's a bug or a feature --- you could argue that it's a feature
because it lets you suppress routine autovacuuming and still customize
the anti-wraparound timing.  Maybe it's a documentation bug: the docs
say that enabled = false means the table is "never autovacuumed", but
what the code seems to be implementing is "it's only autovacuumed
when necessary to prevent wraparound".  I think that's the behavior
we want ...

In any case, you should be setting "unused" fields of a pg_autovacuum
entry to -1, not zero.

			regards, tom lane

In response to

Responses

pgsql-bugs by date

Next:From: Tom LaneDate: 2008-01-24 01:09:42
Subject: Re: Statement Timeout Message Incorrect
Previous:From: eleinDate: 2008-01-24 00:06:19
Subject: Re: Statement Timeout Message Incorrect

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group