li
  当前位置:主页 > 性能优化 > 文章内容
li
ORA-01502错误成因和解决方法
来源: www.ixdba.net  作者: IXDBA.NET官方    时间:2008-03-18   阅读:9  
本文章共8298字,分3页,当前第1页,快速翻页:
 

今天上班,一大早接到开发人员和业务人员的通知,说一个登陆页面不能用了,报错:

2005-01-31 13:59:02,721 [com.aspire.common.dao.OamUserDAO]- -214:select错误
java.sql.SQLException: ORA-01502 state

这个错误是由于索引失效造成的,重建索引后,问题就解决了。

为了搞清楚索引为什么会失效,以及如何解决,我们做个测试:

首先我们创建一个普通的测试表(非分区表):
SQL> create table t(a number);

Table created.

SQL> select tablespace_name from user_segments where segment_name='T';

TABLESPACE_NAME
------------------------------
DATA_DYNAMIC

SQL>

然后,我们创建一个普通索引

SQL> create index idxt on t(a);

Index created.

SQL> insert into t values(10);

1 row created.

SQL> set linesize 200
SQL> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='IDXT';

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_TYPE  STATUS
------------------------------ --------------------------- ------------------------------ ----------- --------
IDXT                           NORMAL                      DATA_DYNAMIC                   TABLE       VALID

SQL>

模拟索引是失效的情况:
SQL> alter table  t move tablespace tools
  2  /

Table altered.

SQL> select index_name,index_type,tablespace_name,table_type,status from user_indexes where index_name='IDXT';

INDEX_NAME                     INDEX_TYPE                  TABLESPACE_NAME                TABLE_TYPE  STATUS
------------------------------ --------------------------- ------------------------------ ----------- --------
IDXT                           NORMAL                      DATA_DYNAMIC                   TABLE       UNUSABLE

SQL>
我们看到,当使用类似 alter table xxxxxx move tablespace xxxxxxx 命令后,索引就会失效。

www.ixdba.net


当然,作为测试,也可以直接使用alter index idxt unusable;命令使索引失效,例如:



阅读更多内容1 · 2 · 3 · 下一页>>


  上一篇: 如何解决Ora-600 4193错误   下一篇: ORA-00903 invalid table name
li
 §相关评论  
 热点文章

·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 编辑推荐
·Resize datafile导致ASM Crash
·在Oracle10g RAC下新增ASM磁盘
·ORACLE SQL性能优化系列 (一)
·oracle性能调优:管理oracle日志
·oracle RAC环境中系统时钟的调
·why:Rac的心跳线不支持交叉线?
·RAC的VIP及实例依赖关系:版本O
·如何启动DataGuard的备用数据库
·系统表空间IO错误 数据损坏处理
·不幸中的万幸:遭遇ORA-00600 [
·用ORACLE的高级复制实现内外网
li
 相关篇章
·如何解决Ora-600 4193错误
·ORA-01599: failed to acquire r...
·ORA-01460的解决方法
·ORA-29516 Aurora assertion fai...
·ORA-25153: 临时表空间为空
·oracle中ora-0100错误打开游标过...
·oracle ORA-01991错误--重建密码...
·ORA-00904 invalid column name案...
·oracle ora-01861文字与格式字符...
·ORACLE ORA-1693错误以及表和索...
·ORA-00903 invalid table name
·Oracle ORA-00257故障解决办法
·ORA-00604 error occurred at re...
·清除Oracle中无用索引,改善DML性...
·ORA-04031错误解决方法(unable t...
·ORA-1122错误的解决办法
·ORA-07445: exception encounter...
·Oracle高级复制配置文档
·物化视图高级复制中ORA-23313错误...
·ORACLE的高级复制实现内外网数据...
 
li
设为首页 | 关于我们 | 技术服务 | 收藏本站 | 网站地图 | 联系方式 | 本站友情连接