Re: Large historical tables and autovacuum

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "David Morton *EXTERN*" <davidmorton78(at)gmail(dot)com>, <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Large historical tables and autovacuum
Date: 2012-09-11 08:55:04
Message-ID: D960CB61B694CF459DCFB4B0128514C208625460@exadv11.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

David Morton wrote:
>>> We have many large tables which contain static historical data, they
are auto vacuumed on
>>> a regular basis (sometimes to prevent wraparound) which i suspect
causes a few annoying side effects:
>>> - Additional WAL file generation
>>> - Increased 'changed' data as far as our online rsync based backups
are concerned
>>>
>>> Is there any way to tell Postgres that these tables are now not
available for changes so
>>> we can avoid these seemingly pointless maintenance tasks ?

Fernando Hevia replied:
>> ALTER TABLE table_name SET (
>> autovacuum_enabled = false
>> );

> What are the implications of doing this ?
> Some times we experience the vacuum being started to prevent
wraparound, i understand this will always
> take place if required regardless of autovacuum settings ?

You are right, that won't help at all.
Autovacuum to prevent transaction ID wraparound will
still take place. And if the table does not change, normal
autovacuum will leave the table alone anyway.
So don't change this setting.

> Is there any way of making the table 'read only' so its nice and tidy
/ immutable ?

There is no way to prevent a VACUUM at least every
autovacuum_freeze_max_age transactions.

The best you can do is to manually schedule VACUUMs
for this table at times when it does not hurt so much.

Yours,
Laurenz Albe

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message ramana.pls 2012-09-11 12:36:45 pg_restore problem "Found unexpected Block id"
Previous Message Rosser Schwarz 2012-09-11 04:29:08 Re: Large historical tables and autovacuum