很久没有写技术帖子了,来一个凑凑数。 

昨天晚上,兄弟们干活据说到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错误”


  1. codepeon — July 18, 2007 @ 6:39 pm

    俺的表也就几个亿记录

    强悍,哈哈

  2. blue_prince — July 18, 2007 @ 8:29 pm

    rpwt

  3. blue_prince — July 18, 2007 @ 8:30 pm

    rpwt

  4. David.Guo — July 18, 2007 @ 10:28 pm

    to blue_prince
    我知道是rpwt,也不用说这么多次吗。

  5. codepeon — July 19, 2007 @ 5:59 pm

    rpwt

  6. victor666666 — July 23, 2007 @ 2:40 pm

    确实诡异

  7. nowait — July 24, 2007 @ 4:33 pm

    期待后续研究,为什么会出现这个“.”?



Write a comment

You need tologin.