2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > oracle 执行删除索引报错 Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引

oracle 执行删除索引报错 Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引

时间:2019-01-06 02:09:55

相关推荐

oracle 执行删除索引报错 Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引

(一)问题:

最近在做Oracle数据清理,在对分区表进行数据清理时,采用的方法是drop partition,删除的过程中,没有遇到任何问题,大概过了10分钟,开发人员反馈部分分区表上的业务失败。具体错误为:

ORA-01502错误:索引或这类索引的分区处于不可用状态(英文:ora-01502:index schema.index_name or partition of such index is in unusable state)。

(二)原因分析

查看出现问题的分区表,均有一个共同点:表上以“pk_”开头的索引为unusable状态,以“pk_”开头的索引是随创建主键约束而创建的。当用户在创建主键约束或唯一性约束的时候,会在相应的列上创建唯一性索引

经过查证,发现是在删除分区的时候,导致分区表上的唯一性全局索引为不可用状态,导致新的数据无法正常插入,从而引发了该错误。

是不是索引不可用会导致DML操作失败呢?经过验证,发现以下特点:

1.对于非唯一性索引,如果索引不可用,是不会影响到到DML操作的;

2.对于唯一性索引,如果索引不可用,在进行DML操作时,会触发ORA-01502错误;

这里记录一下哪些操作会导致索引失效:

图1.索引失效原因总结<

oracle 执行删除索引报错 Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。