Re: Cannot use a standalone backend to VACUUM in "postgres"" - Mailing list pgsql-general

From Manuel Sugawara
Subject Re: Cannot use a standalone backend to VACUUM in "postgres""
Date
Msg-id m3myo3yl27.fsf@conexa.fciencias.unam.mx
Whole thread Raw
In response to Re: Cannot use a standalone backend to VACUUM in "postgres""  (Alvaro Herrera <alvherre@commandprompt.com>)
Responses Re: Cannot use a standalone backend to VACUUM in "postgres""  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-general
Alvaro Herrera <alvherre@commandprompt.com> writes:

> Manuel Sugawara wrote:
>> Alvaro Herrera <alvherre@commandprompt.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.

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Number or parameters for functions - limited to 32 ?
Next
From: Alvaro Herrera
Date:
Subject: Re: Cannot use a standalone backend to VACUUM in "postgres""