Thread: autovacuum vacuums entire database...is this right?
Hi, I'm just wondering if autovacuum is ever supposed to vacuum the entire database during one of its runs. As far as I remember, it's supposed to vacuum one table at a time, based on the autovacuum_vacuum_threshold, autovacuum_analyze_threshold, etc. settings. For some reason, autovacuum decided to run a vacuum on my entire database (29GB large), and it's taking forever: select now(), query_start, current_query, backend_start, procpid, usename from pg_stat_activity where current_query <> '<IDLE>'; now | query_start | current_query | backend_start | procpid | usename -------------------------------+------------------------------- +---------------+-------------------------------+---------+---------- 2007-04-15 06:34:27.925042-07 | 2007-04-14 22:23:31.283894-07 | VACUUM | 2007-04-14 22:23:31.274121-07 | 9406 | postgres Is this expected behavior? --Richard
It's been about a month and a half, and I'm getting this VACUUM again. This time, I'm wondering if there's any way to tell if autovacuum is doing a database-wide vacuum for the sake of xid wraparound or for some other reason. Is there some sort of entry that gets put into the log, and if so, what log level would it be at? If this doesn't get logged, could I make this a feature request? Thanks! --Richard On Apr 15, 6:35 am, "richy...@gmail.com" <richy...@gmail.com> wrote: > Hi, > > I'm just wondering if autovacuum is ever supposed to vacuum the entire > database during one of its runs. As far as I remember, it's supposed > to vacuum one table at a time, based on the > autovacuum_vacuum_threshold, autovacuum_analyze_threshold, etc. > settings. > > For some reason, autovacuum decided to run a vacuum on my entire > database (29GB large), and it's taking forever: > > select now(), query_start, current_query, backend_start, procpid, > usename from pg_stat_activity where current_query <> '<IDLE>'; > now | query_start | > current_query | backend_start | procpid | usename > -------------------------------+------------------------------- > +---------------+-------------------------------+---------+---------- > 2007-04-15 06:34:27.925042-07 | 2007-04-14 22:23:31.283894-07 | > VACUUM | 2007-04-14 22:23:31.274121-07 | 9406 | postgres > > Is this expected behavior? > > --Richard
richyen3@gmail.com escribió: > It's been about a month and a half, and I'm getting this VACUUM > again. This time, I'm wondering if there's any way to tell if > autovacuum is doing a database-wide vacuum for the sake of xid > wraparound or for some other reason. Is there some sort of entry that > gets put into the log, and if so, what log level would it be at? No, I don't think we had yet set more extensive logging in autovacuum. > If this doesn't get logged, could I make this a feature request? Not really, because starting from 8.2 autovacuum no longer does that. There is no longer a need for database-wide vacuums. So if you're having problems because of that, your best bet is to upgrade. -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.