如果出现 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