技术标签: 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
文章浏览阅读557次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达本文转自泡泡机器人,已授权标题:Mobile3DRecon: Real-time Monocular 3D Reconstructi..._mobile3drecon: real-time monocular 3d reconstruction on a mobile phone
文章浏览阅读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
文章浏览阅读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 计数
文章浏览阅读2k次。用jquery Mobile可以创建几乎所有的APP。虾米音乐很有意思吧?本节连载来看看如果做一个虾米音乐播放器!_音乐播放器插件 jquery mobile
文章浏览阅读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):
文章浏览阅读649次,点赞21次,收藏11次。int的范围,正负上下限大约为2.1*10^9;long long的范围,正负上下限大约为9.2*10^18;处理19位以上的数字,对它们进行加减乘除
文章浏览阅读187次。Eclipse IDE中的java.io.Console支持我使用Eclipse IDE来开发,编译和运行我的Java项目。 今天,我正在尝试使用System.console()类来管理输出,更重要的是,用户输入。问题是System.console()在“通过”Eclipse运行应用程序时返回null。 Eclipse在后台进程上运行程序,而不是我们熟悉的控制台窗口的顶级进程。有没有办法强制Ecl..._eclipse java console
文章浏览阅读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
文章浏览阅读351次。设备树语法及绑定概述Device Tree是一种用来描述硬件的数据结构,类似板级描述语言,起源于OpenFirmware(OF)。就ARM平台来说,设备树文件存放在arch/arm/boot/dts下,绑定文档存在Documentation/devicetree/bindings下。设备树由一系列被命名的节点(node)和属性(property)组成,而节点本身可包含子节点。所谓属..._warning: dt compatible string
文章浏览阅读7.3k次,点赞12次,收藏74次。利用Python定义函数批量处理Word中的字体格式样式,间距行距、字体设置。_python进行word文档编辑 times new roman
文章浏览阅读1.2k次。导读:现代单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、等等,这些都离不开单片机。在单片机入门系列讲座中,首先学习单片机的基本构成和工作原理、以及外围功能电路,然后,挑战一个_单片机原理及应用
文章浏览阅读9.7k次,点赞34次,收藏33次。最近一个项目中需要独自设计一个表单式工作流功能模块,在此将整个功能模块的设计思路分享出来。_功能模块设计