index or partition of such index is in unusable state

I am getting ORA 01502 index or partition of such index is in unusable state when trying to insert in table 2 after exchange partition. The exchange parttion itself is working fine.

ALTER TABLE  table1 EXCHANGE PARTITION pcurrent
with table table2

Any suggestions?

Thanks.

pkunworAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

awking00Information Technology SpecialistCommented:
Can you post the complete error message?
0
schwertnerCommented:
Oracle's partitioning capabilities have been enhanced in Oracle9i with the addition of a feature that enables global indexes to be maintained during partition maintenance operations. A new clause, UPDATE GLOBAL INDEXES, can optionally be appended to the maintenance commands. When this clause is present, Oracle will automatically and efficiently maintain all global indexes instead of making them UNUSABLE. For example, when dropping a partition, the command to take advantage of this new feature is: ALTER TABLE T1 DROP PARTITION P1 UPDATE GLOBAL INDEXES;
Availability - When an index in marked UNUSABLE, applications may become unusable since they depend on indexes to guarantee performance. When using the UPDATE GLOBAL INDEXES clause, global indexes are always available. Hence there is no impact on applications that might be accessing the table.

0
pkunworAuthor Commented:
I tried adding UPDATE GLOBAL INDEXES to above EXCHANGE PARTITION SYNTAX but still getting same error.

The complete error message is as follows

ORA-01502:index 'index_name' or partition of such index in unusable state.  (index_name is the name of index in my table)

0
Big Business Goals? Which KPIs Will Help You

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

schwertnerCommented:
Then rebuild the index.

SELECT * from USER_INDEXES WHERE STATUS = INVALID

alter index  index_nsme rebuild;

This could be combined in PL/SQL procedure
0
awking00Information Technology SpecialistCommented:
Run the attached query.
query.txt
0
pkunworAuthor Commented:
I get status as 'UNUSABLE '
0
schwertnerCommented:
What is expected and marked at the beqinning of the question.
This is so, because the underlzing table expirienced major changes
that made the index unusable.
The resolution is to rebuild the index.
0
awking00Information Technology SpecialistCommented:
Have you tried running the alter index index_name rebuild statement that schwertner has shown and re-run your exchange partition statement?
0
pkunworAuthor Commented:
Rebuilding the index solved the problem temporarily. The issue occurs every time exchange partition is run and i have to rebuild the index again. since exchange partition is part of regular process, i was trying to avoid rebuilding index every time.

anyway, I found that this error is unaviodable with exchange partition when global index is used. I had to change the indexes to be local that resolved the issue. Thanks all for your suggestions.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
schwertnerCommented:
Exchange partition is a major change of the tables and changes drasticallz the conntents of the table. So it is expected that the indexes will get corrupted.
One workaround is to write procedure thar will do the two thingsÖ EXCHANGE PARTITION and REBUILD. So you will not have troubles.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Oracle Database

From novice to tech pro — start learning today.