oracle的索引不可用,Oracle异常处理——ORA-01502:索引或这类索引的分区处于不可用状态...-程序员宅基地

技术标签: oracle的索引不可用  

Oracle异常处理——ORA-01502:索引或这类索引的分区处于不可用状态

参考自:https://www.cnblogs.com/lijiaman/p/9277149.html

1、原因分析

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

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

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

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

哪些操作会导致索引失效:

(1)move操作

alter table tableName move [tablespace tablespaceName];

(2)用户手动unseable索引

alter index schema.indexName unusable;

(3)分区表的删除分区操作

alter table tableName drop partition partitionName;

2、解决方法

创建唯一索引的三种方式:

(1)直接创建唯一性索引

语法为:CREATE UNIQUE INDEX index_name on table_name(col1,col2,…);

(2)创建主键约束时自动创建唯一性索引

语法为:ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(col1,col2,..);

(3)创建唯一性约束时自动创建唯一性索引

语法为:ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(col1,col2,…);

解决方法:

(1)方案一:删除唯一性索引

与业务方面沟通,确认唯一性索引是否可以删除,如果可以,直接删除索引,删除语法为:

DROP INDEX schema.index_name;

对于由主键约束或唯一性约束创建的唯一性索引,不能直接删除,正确的方法是删除相应的约束。

ALTER TABLE tableName DROP CONSTRAINT constraint_name;

小结:该方法简单粗暴,前提是在约束或索引在业务方面可以删除的情况下才能使用。

(2)方案二:重建唯一性索引(针对非分区表)

语法为:ALTER INDEX [schema.]index_name REBUILD [ONLINE] [TABLESPACE tablespace name]

小结:该方法可以使索引可用。但对于分区表而言,依然存在问题:在下一次删除分区后,索引状态又会变为不可用。

(3)方案三:删除不可用的索引,创建唯一性分区索引(针对分区表)

对于主键约束、唯一性约束,可以使用以下语法添加唯一性局部分区索引:

ALTER TABLE [schema.]table_name ADD CONSTRAINT constarint [PRIMARY KEY | UNIQUE](col1,col2)

USING INDEX LOCAL TABLESPACE tablespace_name;

小结:该方法可以有效解决分区表因删除分区导致的索引不可用问题。

原文:https://www.cnblogs.com/shujk/p/12783836.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30177835/article/details/116338025

智能推荐

在手机上实现实时的单目3D重建-程序员宅基地

文章浏览阅读557次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达本文转自泡泡机器人,已授权标题:Mobile3DRecon: Real-time Monocular 3D Reconstructi..._mobile3drecon: real-time monocular 3d reconstruction on a mobile phone

Image-based Lighting approaches and parallax-corrected cubemap_imaga parallax correction-程序员宅基地

文章浏览阅读3k次。mage-based Lighting approaches and parallax-corrected cubemapSEPTEMBER 29, 2012 25 COMMENTSVersion : 1.28 – Living blog – First version was 2 December 2011This post replace and update_imaga parallax correction

UVA 10574 - Counting Rectangles 计数-程序员宅基地

文章浏览阅读62次。Given n points on the XY plane, count how many regular rectangles are formed. A rectangle is regular if and only if its sides are all parallel to the axis.InputThe first line contains the number of tes..._rectangle 计数

小白学jquery Mobile《构建跨平台APP:jQuery Mobile移动应用实战》连载六-设计播放器APP_音乐播放器插件 jquery mobile-程序员宅基地

文章浏览阅读2k次。用jquery Mobile可以创建几乎所有的APP。虾米音乐很有意思吧?本节连载来看看如果做一个虾米音乐播放器!_音乐播放器插件 jquery mobile

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):-程序员宅基地

文章浏览阅读157次。三种情况:1. mapper的namespace写的不对!!!注意系修改。2.UserDao的方法在UserDao.xml中没有,然后执行UserDao的方法会报此3. UserDao的方法返回值是List,而select元素没有正确配置ResultMap,或者只配置ResultType!4. 如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决...我的属于第..._org.apache.ibatis.binding.bindingexception: invalid bound statement (not found):

NOIP,CSP-J,CSP-S——高精度加减乘除-程序员宅基地

文章浏览阅读649次,点赞21次,收藏11次。int的范围,正负上下限大约为2.1*10^9;long long的范围,正负上下限大约为9.2*10^18;处理19位以上的数字,对它们进行加减乘除

随便推点

eclipse java.io_Eclipse IDE中的java.io.Console支持-程序员宅基地

文章浏览阅读187次。Eclipse IDE中的java.io.Console支持我使用Eclipse IDE来开发,编译和运行我的Java项目。 今天,我正在尝试使用System.console()类来管理输出,更重要的是,用户输入。问题是System.console()在“通过”Eclipse运行应用程序时返回null。 Eclipse在后台进程上运行程序,而不是我们熟悉的控制台窗口的顶级进程。有没有办法强制Ecl..._eclipse java console

使用docker下载并安装mongodb5.0.5_docker中安装mongodb5-程序员宅基地

文章浏览阅读4.2k次,点赞3次,收藏5次。1.安装docker和docker-compose1.1 安装docker软件yum install -y docker1.2 启动docker并将docker加入开机启动systemctl start dockersystemctl enable docker1.3 查看docker版本docker version1.4 安装docker-compose安装epel源yum install -y epel-release安装docker-composeyum i..._docker中安装mongodb5

linux设备树语法-程序员宅基地

文章浏览阅读351次。设备树语法及绑定概述Device Tree是一种用来描述硬件的数据结构,类似板级描述语言,起源于OpenFirmware(OF)。就ARM平台来说,设备树文件存放在arch/arm/boot/dts下,绑定文档存在Documentation/devicetree/bindings下。设备树由一系列被命名的节点(node)和属性(property)组成,而节点本身可包含子节点。所谓属..._warning: dt compatible string

Python批量调整Word文档中的字体、段落间距及格式python调用函数批量调整word格式_python进行word文档编辑 times new roman-程序员宅基地

文章浏览阅读7.3k次,点赞12次,收藏74次。利用Python定义函数批量处理Word中的字体格式样式,间距行距、字体设置。_python进行word文档编辑 times new roman

单片机原理及应用以及单机片的主要分类-程序员宅基地

文章浏览阅读1.2k次。导读:现代单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、等等,这些都离不开单片机。在单片机入门系列讲座中,首先学习单片机的基本构成和工作原理、以及外围功能电路,然后,挑战一个_单片机原理及应用

表单式工作流功能模块设计方案-程序员宅基地

文章浏览阅读9.7k次,点赞34次,收藏33次。最近一个项目中需要独自设计一个表单式工作流功能模块,在此将整个功能模块的设计思路分享出来。_功能模块设计

推荐文章

热门文章

相关标签