[Oracle]ORA-01499的处理

如果出现 ORA-01499,说明 table 和 index之间的相互参照出了错:

http://iderror.com/errors/oracle/oracle-db/ora-00900-to-ora-01499/ora-01499-tableindex-cross-reference-failure-see-trace-file/

如果不是 table出现了物理坏块,就是index出现了物理坏块。

所以可以先考虑备份。

然后,重建 index,看重建index后,执行 anlayze table <table名> validate structure cascade 是否仍然出错。

如果仍然不行,则需要怀疑到 对 table 执行全表走查,看其是否有问题。

而且,oracle文档上说:

http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_4005.htm#SQLRF01105

-------------------------

The following statement analyzes the emp table:

ANALYZE TABLE emp VALIDATE STRUCTURE;

You can validate an object and all dependent objects (for example, indexes) by including the CASCADE option. The following statement validates the emp table and all associated indexes:

ANALYZE TABLE emp VALIDATE STRUCTURE CASCADE;

-------------------------

 

也就是说,可以先 validate structure ,然后再 validate structure cascade 。

如果 validate structure 出问题,则table就已经发生问题了。

那只有想办法从备份进行恢复了。

 

如果不幸没有备份,则需要考虑跳过坏块,进行部分恢复:

参考:

http://blog.itpub.net/7728585/viewspace-670597/

http://docs.oracle.com/cd/B19306_01/server.102/b14231/repair.htm

 

posted @ 2014-03-21 17:03  健哥的数据花园  阅读(1902)  评论(0编辑  收藏  举报