Обсуждение: index problems
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
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