惱人的bug 無效的rowid&物件不再存在

lnwxzyp發表於2008-12-14

        從去年開始就一直被oracle8i/9i的 "無效rowid"和"物件不再存在"錯誤所困擾.局方也請oracle的專家來看過,但是人家也解決不了,一句這是oracle8i/9i以下版本的錯誤,建議升級為10g.就把我們給打發了.
        於是也就開始了我們長達兩個多月的夜班,雖然之後開發出來了全自動的監控程式,不再需要值夜班了,但是這兩個錯誤也一直在困擾這我們
       最近局方的一個地市的資料庫開始頻繁的報錯,奇怪的是執行分析語句
       analyze table table_name validate strucutre; 並不會報錯
       select count(*) from table_name;也很正常
但是多個表關聯還是會報錯,百思不得其解的情況下,只能給客戶回覆:"這個問題..厄..科學無法解釋"
        一個偶然的機會 再給一個表作分析統計的時候,
        analyze table table_name compute statistics;         
        報錯: 物件不再存在.
但是之前索引都建好的,同時count(*)進行了一次全表掃描也不報錯.最後使用分析語句analyze table table_name validate structure; 還是不報錯 但是根據客戶的回饋 多個表一關聯就會報錯. 對資料量比較大的表進行了小事務的劃分 先根據關聯的條件臨時建立一個表temp_1、temp_2、temp_3,對錶進行分析 analyze table temp_1 validate structure; 不報錯,另外兩個表也一樣,但是關聯之後又報錯 無效的rowid. 繼續用分析統計語句進行分析,
analyze table temp_1 compute statistics;不報錯;
analyze table temp_2 compute statistics;終於出現了錯誤“物件不再存在”
drop table temp_2;
重新建立temp_2,指定另外一個表空間,
analyze table temp_2 compute statistics;    沒有報錯
接著執行幾個表的關聯語句 , 果然不再報錯了。但是依然不清楚這其中有什麼原理。希望以後可以能解決掉這個問題。    
      

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12216142/viewspace-511828/,如需轉載,請註明出處,否則將追究法律責任。

相關文章