环境:SunOS + Oracle 11.2.0.3
 
对部分表进行Move操作之后,未重建对应的索引,会导致ORA-1502 索引不可用。
此时需要用下面的查询拼接出重建不可用索引的sql语句:
select 'alter index '||index_name||' rebuild tablespace dbs_cssf_gt online;' from user_indexes where status = 'UNUSABLE' order by index_name desc;

重建过程中个别索引重建的等待时间过长,直接ctrl+c终止了,然后查询哪些索引状态还是unusable.发现如下三个索引:

WONO_CSSF_GT_HUB_INPUT_PARAMS
PK_CSSF_GT_HUB_INPUT_PARAMS PK_CSSF_CP_SH_INPUT_PARAMS

1.联机重建前两个索引时报错ORA-8104  该索引对象265028正在被联机建立或重建

alter index WONO_CSSF_GT_HUB_INPUT_PARAMS rebuild tablespace dbs_cssf_gt online;
alter index PK_CSSF_GT_HUB_INPUT_PARAMS rebuild tablespace dbs_cssf_gt online;

2.drop索引仍然报错ORA-8104

drop index WONO_CSSF_GT_HUB_INPUT_PARAMS; --报错ORA-8104
alter table CSSF_GT_HUB_INPUT_PARAMS drop primary key; --报错ORA-2441 提示主键不存在,发现主键已经删除,但对应的索引还在,删掉索引。
drop index PK_CSSF_GT_HUB_INPUT_PARAMS;--报错ORA-8104
3.查询此表记录数
select count(1) from CSSF_GT_HUB_INPUT_PARAMS;  --13条记录而已

4.重建主键和索引

alter table CSSF_GT_HUB_INPUT_PARAMS
add constraint PK_CSSF_GT_HUB_INPUT_PARAMS primary key (WF_SN)
using index
tablespace DBS_CSSF_GT
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Create/Recreate indexes
create index WONO_CSSF_GT_HUB_INPUT_PARAMS on CSSF_GT_HUB_INPUT_PARAMS (WO_NO)
tablespace DBS_CSSF_GT
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);

5.重建第三个无效索引时遭遇 ORA-604 ORA-1450,但之后drop index成功,然后试图drop上面两个index也成功了,估计是SMON已经回收了之前的失败过程。

SQL> alter index PK_CSSF_CP_SH_INPUT_PARAMS rebuild tablespace dbs_cssf_gt online;

alter index PK_CSSF_CP_SH_INPUT_PARAMS rebuild tablespace dbs_cssf_gt online

ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01450: 超出最大的关键字长度 (3215) SQL> alter table CSSF_CP_SH_INPUT_PARAMS drop primary key; alter table CSSF_CP_SH_INPUT_PARAMS drop primary key ORA-02441: 无法删除不存在的主键 SQL>
SQL> alter table CSSF_CP_SH_INPUT_PARAMS
2 add constraint PK_CSSF_CP_SH_INPUT_PARAMS primary key (WF_SN)
3 using index
4 tablespace DBS_CSSF_GT
5 pctfree 10
6 initrans 2
7 maxtrans 167
8 storage
9 (
10 initial 64K
11 next 1M
12 minextents 1
13 maxextents unlimited
14 ); alter table CSSF_CP_SH_INPUT_PARAMS
add constraint PK_CSSF_CP_SH_INPUT_PARAMS primary key (WF_SN)
using index
tablespace DBS_CSSF_GT
pctfree 10
initrans 2
maxtrans 167
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
) ORA-00955: 名称已由现有对象使用 SQL> drop index PK_CSSF_CP_SH_INPUT_PARAMS; Index dropped SQL>
SQL> alter table CSSF_CP_SH_INPUT_PARAMS
2 add constraint PK_CSSF_CP_SH_INPUT_PARAMS primary key (WF_SN)
3 using index
4 tablespace DBS_CSSF_GT
5 pctfree 10
6 initrans 2
7 maxtrans 167
8 storage
9 (
10 initial 64K
11 next 1M
12 minextents 1
13 maxextents unlimited
14 ); Table altered

附一篇网上讨论ora-8104的资料:http://blog.csdn.net/wyzxg/article/details/4318618

6.总结:
索引对象的创建操作要慎重,开始创建后不要轻易中断创建过程。

记录一则ORACLE MOVE操作后重建索引过程被强制中断导致的ORA-8104案例的更多相关文章

  1. 11G在线重建索引

    SQL> select count(*) from test_idx; COUNT(*) ---------- 19087751 SQL> select segment_name,segm ...

  2. Elasticsearch系列---实战零停机重建索引

    前言 我们使用Elasticsearch索引文档时,最理想的情况是文档JSON结构是确定的,数据源源不断地灌进来即可,但实际情况中,没人能够阻拦需求的变更,在项目的某个版本,可能会对原有的文档结构造成 ...

  3. ES数据库重建索引——Reindex(数据迁移)

    应用背景: 1.当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex. 2.当数据的mapping需要修改,但是大量的数据 ...

  4. [转]Oracle 重建索引的必要性

    http://blog.csdn.net/leshami/article/details/23763963 索引重建是一个争论不休被不断热烈讨论的议题.当然Oracle官方也有自己的观点,我们很多DB ...

  5. Oracle 重建索引脚本

    该指数是一个有力的武器,以提高数据库的查询性能. 没有索引,喜欢同样的标签库没有书籍,找书,他们想预订比登天还难.中,尤其是在批量的DML的情形下会产生对应的碎片.以及B树高度会发生对应变化.因此能够 ...

  6. oracle 重建索引以及导出所有的索引脚本(可以解决还原数据库文件时先还原数据,在重新用脚本创建索引)

    导出数据库备份文件 1. 备份服务器数据,采用并行方式,加快备份速度(文件日期根据具体操作日期修改) expdp jhpt/XXXX directory=databackup dumpfile=dpf ...

  7. 曲演杂坛--重建索引后,还使用混合分区么?(Are mixed pages removed by an index rebuild?)

    原文来自:http://www.sqlskills.com/blogs/paul/mixed-pages-removed-index-rebuild/ 在SQL SERVER 中,区是管理空间的基本单 ...

  8. Oracle 学习总结 - 表和索引的性能优化

    表的性能 表的性能取决于创建表之前所应用的数据库特性,数据库->表空间->表,创建数据库时确保为每个用户创建一个默认的永久表空间和临时表空间并使用本地管理,创建表空间设为本地管理并且自动段 ...

  9. ORACLE分区表操作

    ORACLE分区表的操作应用 摘要:在大量业务数据处理的项目中,可以考虑使用分区表来提高应用系统的性能并方便数据管理,本文详细介绍了分区表的使用. 在大型的企业应用或企业级的数据库应用中,要处理的数据 ...

随机推荐

  1. Python之路【第三篇】python基础 之基本数据类型 补充

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-310 ...

  2. C及C++中typedef的简单使用指南

    又是在学数据结构的时候,发现了之前学习的知识遗忘很多,在发现对C/C++中关键字typedef的理解还是没有到位后,我翻阅了学C++用到的课本,又问了度娘,也看了不少关于typedef用法的博客.于是 ...

  3. STL之关联容器

    关联容器包含map.set.multimap.multiset. 关联容器的特点是明显的,相对于顺序容器,有如下特点: 1.其内部是采用非线性的二叉树结构,具体的说是红黑树的结构原理实现的. 2.se ...

  4. java面向对象_static关键字

    1. 修饰成员变量:有static修饰的为静态变量,没有static修饰的称为实例变量. 实例变量:属于对象的,一个对象有一份.在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响.存储 ...

  5. maven web项目中web.xml

    web.xml 不是web工程必须的. web.xml文件用来配置那些东西:欢迎页,servlet,filter等. web.xml文件中定义了多少种标签元素,web.xml 中就可以出现它的模式文件 ...

  6. 《Linux内核设计与实现》读书笔记 第十八章 调试

    第十八章调试 18.1 准备开始          需要准备的东西: l  一个bug:大部分bug通常都不是行为可靠而且定义明确的 l  一个藏匿bug的内核版本:找出bug首先出现的版本 l  相 ...

  7. CYQ.Data V4系列全面开源(2013-08-04)

    致各位.NET开发者: 考虑到本人开源作品太多,个人维护力度有限,故自2013-08-04开始,开放原本需要授权使用的V4系列的最高版本V4.55的框架源码,同时也开放相对应的辅助工具源码,自此,V4 ...

  8. Python黑帽编程 3.2 ARP监控

    Python黑帽编程 3.2 ARP监控 在第3.1节<ARP欺骗>中,我们学习了ARP的基本原理,使用Python实现了我们自己的ARP欺骗工具.在上一节的基础上,我们来实现一个ARP监 ...

  9. quick-cocos2d-x 2.2.3 rc版本中 crypto.md5file() 的C++实现在ANDROID上有BUG

    原来的版本是用fopen打开文件的,如果要从ANDROID的APK中取文件,直接就洗白了修改如下 void CCCrypto::MD5File(const char* path, unsigned c ...

  10. npm不是以管理身份运行遇到的问题

    环境:win10+npm3.10.5 问题:在npm install lodash时,出现下列错误("npm-debug.log"文件内容) 0 info it worked if ...