Unix Technical Forum

Re: vacuum confusion

This is a discussion on Re: vacuum confusion within the Pgsql General forums, part of the PostgreSQL category; --> John Sidney-Woollett wrote: > I've got a 7.4.6 db running on linux where we've been vacuuming "full" > the ...


Go Back   Unix Technical Forum > Database Server Software > PostgreSQL > Pgsql General

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-08-2008, 07:31 PM
Richard Huxton
 
Posts: n/a
Default Re: vacuum confusion

John Sidney-Woollett wrote:
> I've got a 7.4.6 db running on linux where we've been vacuuming "full"
> the database each night, and have recently switched to "vacuum analyse"
> instead.
>
> We keep seeing this message at the end of the vacuum run:
>
> WARNING: some databases have not been vacuumed in 2013308218 transactions
> HINT: Better vacuum them within 134175429 transactions, or you may have
> a wraparound failure.
> VACUUM
>
> Why are we seeing this message when the only databases in this cluster
> is the one we are vacuuming (each night), and template0 and template1?
>
> Is there something that we're not doing right?


Are you doing template0/1 too? The transaction IDs are shared between
all databases AFAIK. Before the numbers wrap-around any "low" numbers
need to be replaced by a "frozen" marker (I think it's 0 or 1).

--
Richard Huxton
Archonet Ltd

---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-08-2008, 07:31 PM
John Sidney-Woollett
 
Posts: n/a
Default Re: vacuum confusion

I've just noticed that the v8 docs are MUCH better in explaining this
than the 7.4.6 docs that I'm using (since I'm using 7.4.6 in production).

Perhaps if the same texts

<QUOTE>
play=# VACUUM;
WARNING: some databases have not been vacuumed in 1613770184 transactions
HINT: Better vacuum them within 533713463 transactions, or you may have
a wraparound failure.
VACUUM
</QUOTE>

and warning

<QUOTE>
To be sure of safety against transaction wraparound, it is necessary to
vacuum every table, including system catalogs, in every database at
least once every billion transactions. We have seen data loss situations
caused by people deciding that they only needed to vacuum their active
user tables, rather than issuing database-wide vacuum commands. That
will appear to work fine ... for a while.
</QUOTE>

were added to the 7.4.x docs that would help others too.

Thanks

John Sidney-Woollett

Richard Huxton wrote:

> John Sidney-Woollett wrote:
>
>> Ah.., no we're not vacuuming template0 or 1.
>>
>> I didn't realise that the transaction ID would be stored here - I
>> assumed that they'd be in our database.
>>
>> Do I need to need to (plain) vacuum, or vacuum full these template0
>> and template1? And is this something that can be done once a week
>> rather than every night (like our main database)?

>
>
> Ah! Found the section of the manuals - see "Routine Database Maintenance
> Tasks" for details.
>
> AFAIK it's a simple vacuum and once a week is more than enough. The
> manual recommends once every 500million transactions, though you can
> leave it longer.
>
> --
> Richard Huxton
> Archonet Ltd
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org


---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-08-2008, 07:32 PM
Tom Lane
 
Posts: n/a
Default Re: vacuum confusion

John Sidney-Woollett <johnsw@wardbrook.com> writes:
> However the implication (and my confusion) is that you need to vacuum
> your own databases only. It's not clear (to me) that you have to do the
> same for template0 and template1 as well.


You have to vacuum template1, but not template0 because the latter is
marked not datallowconn. Not sure if this is adequately explained
anywhere. The next-to-last para in section 21.1.3 does mention the
datallowconn exception, but perhaps doesn't spell it out well enough.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 05:36 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com