<强>
ora - 01502:索引或这类索引的分区处于不可用状态
强>
原因:出现这个问题,可能有人搬过表,或者禁用过索引。
1. alter table xxxxxx移动表空间xxxxxxx命令后,索引就会失效。
2. 改变指数index_name ,不能使用,命令使索引失效。
解决办法:
1. 重建索引才是解决这类问题的完全的方法。
,,,,改变指数index_name重建(在线);
,,,,或者改变指数index_name重建;
2. 如果是分区索引只需要重建那个失效的分区。
,,,,改变指数index_name重建分区partition_name(在线);
,,,,或者改变指数index_name重建分区partition_name;
3.或者改变当前索引的名字。
说明:
1. 改变会话设置skip_unusable_indexes=true;就可以在会话级别跳过无效索引作查询。
2. 分区索引应适用user_ind_partitions。
3.状态分四种:
,,,N/A说明这个是分区索引需要查user_ind_partitions或者user_ind_subpartitions来确定每个分区是否可用;
,,,说有效明这个索引可用;
,,,不能说明这个索引不可用;
,,,可用说明这个索引的分区是可用的。
4. 查询当前索引的状态:从user_indexes选择不同的状态;
5. 查询那个索引无效:选择index_name得到,user_indexes状态& lt;比;& # 39;有效# 39;;
6. 详细讲解可参考:http://www.sudu.cn/info/html/edu/20071225/20526.html。
7. 批量重建下:选择& # 39;改变指数& # 39;| | index_name | | & # 39;在线重建;& # 39;得到,user_indexes状态& lt;比;& # 39;有效# 39;和index_name不像# 39;% $ $ & # 39;;