From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Bhakti Ghatkar <bghatkar(at)zedo(dot)com> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Vacuum problem due to temp tables |
Date: | 2011-02-26 17:25:32 |
Message-ID: | 20323.1298741132@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Bhakti Ghatkar <bghatkar(at)zedo(dot)com> writes:
> We were running full vacuum on DB when we encountered the error below;
> INFO: vacuuming "pg_catalog.pg_index"
> *vacuumdb: vacuuming of database "rpt_production" failed: ERROR: duplicate
> key value violates unique constraint "pg_index_indexrelid_index"*
> DETAIL: Key (indexrelid)=(2678) already exists.
That's pretty bizarre, but what makes you think it has anything to do
with temp tables? OID 2678 is pg_index_indexrelid_index itself.
It looks to me like you must have duplicate rows in pg_index for that
index (and maybe others?), and the problem is exposed during vacuum full
because it tries to rebuild the indexes.
Could we see the output of
select ctid,xmin,xmax,* from pg_index where indexrelid in
(select indexrelid from pg_index group by 1 having count(*)>1);
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Florian Weimer | 2011-02-26 20:54:50 | Re: Picking out the most recent row using a time stamp column |
Previous Message | Dave Johansen | 2011-02-26 13:44:28 | Re: Picking out the most recent row using a time stamp column |