很久没有写技术帖子了,来一个凑凑数。
昨天晚上,兄弟们干活据说到7点,我是7点30到公司的,准备开始看系统了。
检查了下几个大的应用,基本ok,正在拿喝茶列,开发的老大过来告诉我,应用碰到问题,向一个表中插入记录一直报错。
我开工,sqlplus插入数据到那个表,真的报错,不过有点诡异的错误:ORA-01502 index ‘.’ or partition of such index is in unusable state,这个错误,诡异就诡异在那个单引号中,因为正常情况,这里的.前面应该是对象名,后面是索引名,可是这里,啥都没有。我可以理解为,系统认为,此时发生错误的索引的对象名为空,索引名称也是空。
诡异从此开始了,检查系统使用的表,有PK,可是这个PK对应的索引没有。理论上说,如果有PK,并且PK状态正常,没有disable掉,那么应该是不可能删除索引的。
打电话和正在睡觉的同事确认,他确认,PK的索引是肯定有的,而且他昨天晚上还使用过的。
检查seg$和obj$,前者没有关于PK索引的信息,后者有,我靠。这么说来,系统认为这个PK的索引从来就没有出现过。
没办法,先把应用搞起来,然后来对付这玩意。
drop掉那个没有索引的PK,insert数据,一切正常。
重建PK,正常。(正常是正常,俺的表也就几个亿记录,还是弄了会的)
虽然事情就这么正常了,可是,为什么会有这么诡异的事情,在metalink上也没有查到什么有用的信息。
看来改天我要亲自去灵隐烧香了。
7 Comments to “诡异的ORA-01052错误”
Write a comment
You need tologin.

俺的表也就几个亿记录
强悍,哈哈
rpwt
rpwt
to blue_prince
我知道是rpwt,也不用说这么多次吗。
rpwt
确实诡异
期待后续研究,为什么会出现这个“.”?