今天,一個開發來找我,說是備庫的一個用戶執行存儲過程報錯(我們的備庫是ora11.2.0.3的active standby)。錯誤信息如下:
ora-00604:error occurred at recursive SQL level 1
ora-16000 :database open for read-only access
看到這個錯誤,作爲一個ora菜鳥,第一感覺以爲是該存儲過程有更改數據的操作,而備庫是隻讀的。隨後,查看了該存儲過程,然而發現該存儲過程涉及到的全部都是select語句。這時開發告訴我,應用連接的用戶是b,而存儲過程是a的,並且在週四的時候b用戶執行是沒有問題的,在週五執行的時候就楚翔了上述問題,在覈對了權限問題後,依然沒有解決問題。
後來,登陸到主庫,突然間發現存儲過程是無效的,問開發,原來是週四晚上,更改了該存儲過程導致其無效。在備庫上執行的時候,需要重新編譯,而備庫是隻讀的,無法重新編譯,導致出現了以上的錯誤。ora菜鳥---傷不起啊!~~~~