Re: vacuumdb fails with error pg_statistic_relid_att_inh_index constraint violation after upgrade to 9.6

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Swapnil Vaze <swapvaze28(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: vacuumdb fails with error pg_statistic_relid_att_inh_index constraint violation after upgrade to 9.6
Date: 2017-11-28 14:22:48
Message-ID: 13146.1511878968@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Swapnil Vaze <swapvaze28(at)gmail(dot)com> writes:
> We have upgraded our database from 9.5 to 9.6 version.
> After upgrade we ran vacuumdb command and we are getting following error:
> vacuumdb: vacuuming of database "advdfat" failed: ERROR: duplicate key
> value violates unique constraint "pg_statistic_relid_att_inh_index"
> DETAIL: Key (starelid, staattnum, stainherit)=(1259, 1, f) already exists.

Hmm, odd.

> Can anyone help here?

In order of increasing invasiveness:

1. REINDEX pg_statistic_relid_att_inh_index, on the theory that that index
has become corrupt.

2. If #1 fails with a similar message, there must actually be more than
one pg_statistic row with that key. Manually DELETE those rows, then
REINDEX the index, then ANALYZE pg_class to regenerate the deleted
stats. (I suggest reindexing because this case makes it even more likely
that that index is corrupt.)

3. If #2 fails, TRUNCATE pg_statistic, then re-analyze everything to
rebuild the stats.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2017-11-28 14:25:47 Re: Refreshing materialized views
Previous Message Henrik Uggla 2017-11-28 14:09:09 Refreshing materialized views