Re: Cannot use a standalone backend to VACUUM in "postgres""

From: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Cannot use a standalone backend to VACUUM in "postgres""
Date: 2008-04-08 23:38:08
Message-ID: m3myo3yl27.fsf@conexa.fciencias.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:

> Manuel Sugawara wrote:
>> Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
>>
>> > Hmm, nope -- take away the relnamespace check, because there is a
>> > different namespace for each backend (pg_temp_2, pg_temp_3, etc).
>>
>> Still no luck, changed the query to:
>>
>> select relname, age(relfrozenxid) from pg_class join pg_namespace n on (n.oid = relnamespace) where nspname ~ '^pg_temp'
>>
>> and no temp tables showed in any database :-(. Any other idea?.
>
> None :-( Is there any table with a large age value, regardless of
> temp-ness? Does the age of the oldest table correspond to the age of
> pg_database.datfrozenxid? The interesting database is the one with the
> largest age(pg_database.datfrozenxid).

A friend is doing the queries right now but it takes time :-(, mean
time I was wondering if it will be safe to apply the following patch
just to get the database up and be able to run pg_dumpall:

*** postgresql-8.2.6/src/backend/access/transam/varsup.c~ 2006-11-05 16:42:07.000000000 -0600
--- postgresql-8.2.6/src/backend/access/transam/varsup.c 2008-04-08 18:34:51.000000000 -0500
***************
*** 225,231 ****
* vacuuming requires one transaction per table cleaned, we had better be
* sure there's lots of XIDs left...)
*/
! xidStopLimit = xidWrapLimit - 1000000;
if (xidStopLimit < FirstNormalTransactionId)
xidStopLimit -= FirstNormalTransactionId;

--- 225,231 ----
* vacuuming requires one transaction per table cleaned, we had better be
* sure there's lots of XIDs left...)
*/
! xidStopLimit = xidWrapLimit - 500000;
if (xidStopLimit < FirstNormalTransactionId)
xidStopLimit -= FirstNormalTransactionId;

Regards,
Manuel.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Alvaro Herrera 2008-04-09 01:01:08 Re: Cannot use a standalone backend to VACUUM in "postgres""
Previous Message Tom Lane 2008-04-08 23:10:57 Re: Number or parameters for functions - limited to 32 ?