Обсуждение: duplicate key violates unique constraint pg_toast_635216540

Поиск
Список
Период
Сортировка

duplicate key violates unique constraint pg_toast_635216540

От
"Paul Laughlin"
Дата:
Hi,

For the last 6 months or so we've had an intermittent issue while doing a
data import with a simple update statement.  The fix that we've found for
this issue is to REINDEX TABLE <tablename>;


Has anyone seen this error before?

Again, the error is: duplicate key violates unique constraint pg_toast_<>

Thanks,

Paul

Re: duplicate key violates unique constraint pg_toast_635216540

От
Tom Lane
Дата:
"Paul Laughlin" <plaughlin@gmail.com> writes:
> For the last 6 months or so we've had an intermittent issue while doing a
> data import with a simple update statement.  The fix that we've found for
> this issue is to REINDEX TABLE <tablename>;

What PG version is this?

Are you sure that the REINDEX actually does anything, as opposed to
merely retrying the data import?  I'm thinking you may be having
problems with OID collisions after OID wraparound, which is something
8.1 should defend against but no earlier version does.

What do you get from
    select count(distinct chunk_id) from pg_toast.pg_toast_635216540 ;

            regards, tom lane

Re: duplicate key violates unique constraint pg_toast_635216540

От
"Paul Laughlin"
Дата:
warehouse=# select count(distinct chunk_id) from
pg_toast.pg_toast_635216540;
count
-------
74557
(1 row)

We're on version 8.0.7

On 10/16/06, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> "Paul Laughlin" <plaughlin@gmail.com> writes:
> > For the last 6 months or so we've had an intermittent issue while doing
> a
> > data import with a simple update statement.  The fix that we've found
> for
> > this issue is to REINDEX TABLE <tablename>;
>
> What PG version is this?
>
> Are you sure that the REINDEX actually does anything, as opposed to
> merely retrying the data import?  I'm thinking you may be having
> problems with OID collisions after OID wraparound, which is something
> 8.1 should defend against but no earlier version does.
>
> What do you get from
>         select count(distinct chunk_id) from pg_toast.pg_toast_635216540 ;
>
>                         regards, tom lane
>

Re: duplicate key violates unique constraint pg_toast_635216540

От
Tom Lane
Дата:
"Paul Laughlin" <plaughlin@gmail.com> writes:
> warehouse=# select count(distinct chunk_id) from
> pg_toast.pg_toast_635216540;
> count
> -------
> 74557
> (1 row)

> We're on version 8.0.7

Well, 8.0 is definitely at risk for OID collisions in a toast table,
but with so few entries I'd have thought the probability pretty low.
How often do you see these errors?

            regards, tom lane

Re: duplicate key violates unique constraint pg_toast_635216540

От
"Paul Laughlin"
Дата:
We got it early last week and again this morning.  Before these two it was
about six months ago.

On 10/16/06, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> "Paul Laughlin" <plaughlin@gmail.com> writes:
> > warehouse=# select count(distinct chunk_id) from
> > pg_toast.pg_toast_635216540;
> > count
> > -------
> > 74557
> > (1 row)
>
> > We're on version 8.0.7
>
> Well, 8.0 is definitely at risk for OID collisions in a toast table,
> but with so few entries I'd have thought the probability pretty low.
> How often do you see these errors?
>
>                         regards, tom lane
>

Re: duplicate key violates unique constraint pg_toast_635216540

От
Tom Lane
Дата:
"Paul Laughlin" <plaughlin@gmail.com> writes:
> We got it early last week and again this morning.  Before these two it was
> about six months ago.

A certain amount of clustering could be expected, if a lot of the
entries were made at the time of initial table load --- they'd have
nearby OIDs.  You can either ignore it (I doubt you need REINDEX, just
retry the update) or else update to PG 8.1 ...

            regards, tom lane