| 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: | Whole Thread | Raw Message | 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.
| 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 ? |