Обсуждение: index problems

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

index problems

От
Brook Milligan
Дата:
I am getting the following messages when I VACUUM ANALYZE:

NOTICE:  Index pg_attribute_relid_attnum_index: NUMBER OF INDEX' TUPLES (3579) IS NOT THE SAME AS HEAP' (4517).
        Recreate the index.
NOTICE:  Index pg_attribute_relid_attnam_index: NUMBER OF INDEX' TUPLES (3579) IS NOT THE SAME AS HEAP' (4517).
        Recreate the index.

How do I recreate these indexes?  Is this a symptom of greater
problems?

I notice in src/backend/local1_template1.bki.source the following lines:

declare unique index pg_attribute_relid_attnam_index on pg_attribute using btree(attrelid oid_ops, attname name_ops)
declare unique index pg_attribute_relid_attnum_index on pg_attribute using btree(attrelid oid_ops, attnum int2_ops)

I presume these must be related to what I need to do, but I'm not sure
how to make use of this information (or even if I'm right).  Should I
translate these into CREATE UNIQUE INDEX ... statements?

Thanks for the help.

Cheers,
Brook

Re: index problems

От
Hiroshi Inoue
Дата:

Brook Milligan wrote:

> I am getting the following messages when I VACUUM ANALYZE:
>
> NOTICE:  Index pg_attribute_relid_attnum_index: NUMBER OF INDEX' TUPLES (3579) IS NOT THE SAME AS HEAP' (4517).
>         Recreate the index.
> NOTICE:  Index pg_attribute_relid_attnam_index: NUMBER OF INDEX' TUPLES (3579) IS NOT THE SAME AS HEAP' (4517).
>         Recreate the index.
>
> How do I recreate these indexes?  Is this a symptom of greater
> problems?
>

Unfortunately ordinary commands couldn't recover the corrupted
system indexes. 7.0 has REINDEX command to recover system
indexes. Please do as follows.

1. Stop the postmaster running.
    pg_ctl -w stop

2. Invoke a standalone postgres.
   postgres -P -O your_database_name

3. recreate the indexes using REINDEX command.
   reindex table pg_attribute force;

4. press cntrl-D to exit the program.

5. restart postmaster.

Regards.
Hiroshi Inoue